IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

MFC Discussion :

Load images in client area


Sujet :

MFC

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    58
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 58
    Par défaut Load images in client area
    hello

    salut tout le monde .

    J'utilise open cv et VS2008 et ce que je voudrai c'est d'afficher mes images dans le client area de la Child Frame d'un projet MDI . je ne sais pas si c'est possible de le faire directement ou indirectement mais je veux seulement eviter d'utiliser la fonction cvshowimage qui crée une autre fenetre . je veux que ca soit comme dans n'importe quel logiciel de traitement d'images ou video.

    merci d'avance .

  2. #2
    Membre émérite
    Avatar de Gabrielly
    Inscrit en
    Juin 2004
    Messages
    722
    Détails du profil
    Informations forums :
    Inscription : Juin 2004
    Messages : 722
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    class CTestView : public CView
    {
    //...
    // Attributes
    public:
    	CTestDoc* GetDocument() const;
    
    	CImage m_Image;
    
      //...
    public:
    	HRESULT LoadImage(CString strImageFilePath);
    	virtual void OnInitialUpdate();
    };
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    void CTestView::OnDraw(CDC* pDC)
    {
    	CRect rctWindowSize; 
    	GetClientRect(rctWindowSize);  // toute la vue
    
    	if (!m_Image.IsNull()) // l'image est-elle chargée
    	{	// je copie les bits de mon image sur le dc avec possibilité de compression avec StretchBlt()
    		m_Image.StretchBlt(*pDC, 0, 0, rctWindowSize.Width(), rctWindowSize.Height(), SRCCOPY);
    	}
    	else
    	{
    		CBrush* pOldBrush = (CBrush*) pDC->SelectStockObject(WHITE_BRUSH);
    		pDC->Rectangle(rctWindowSize);
    		pDC->SelectObject(pOldBrush);
    	}
    }
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    HRESULT CTestView::LoadImage(CString strImageFilePath)
    {
    	m_Image.Destroy();			// je détruis l'image précédente si il y a lieu
    	HRESULT hr = m_Image.Load(strImageFilePath); // je charge l'image à partir de son path complet
    	if (FAILED(hr)) 
    	{
    		CString fmt;
    		fmt.Format("Load image failed:\n%x - %s", hr, _com_error(hr).ErrorMessage());
    		::AfxMessageBox(fmt);
    	}
    	InvalidateRect(0);
    	return hr;
    }
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    
    void CTestView::OnInitialUpdate()
    {
    	CView::OnInitialUpdate();
    
    	CTestDoc* pDoc = GetDocument();
    
    	LoadImage(pDoc->GetPathName());
    }
    Bon je vais dans ma Picture Folder en faisant File > Open > je sélectionne une image et c'est tout.


  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    67
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 67
    Par défaut et GDI+
    autre piste avec GDI+ qui simplifie bien la vie...


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    	Bitmap Img(Name);     // Name nom du fichier image
    	UINT W = Img.GetWidth();
    	UINT H = Img.GetHeight();
    	Graphics Gc(m_Cadre.GetDC()->m_hDC); // m_Cadre, le controle dans lequel tu affiches...
    	Gc.DrawImage(&Img, 0, 0, W,H);

Discussions similaires

  1. [Dojo] "loading message" ou "loading image"
    Par KiMbOoO dans le forum Bibliothèques & Frameworks
    Réponses: 2
    Dernier message: 02/04/2009, 15h18
  2. Load image uipanel vs axes
    Par mihaispr dans le forum Interfaces Graphiques
    Réponses: 2
    Dernier message: 12/03/2009, 18h34
  3. [Subclipse] Unable to load defaut svn client
    Par Methode dans le forum Eclipse
    Réponses: 2
    Dernier message: 02/01/2009, 16h04
  4. [MooTools] Pre-load image
    Par Lost In Translation dans le forum Bibliothèques & Frameworks
    Réponses: 9
    Dernier message: 17/12/2008, 19h46
  5. [NIO] envoie d'image à plusieurs client via socket
    Par robert_trudel dans le forum Entrée/Sortie
    Réponses: 1
    Dernier message: 01/10/2006, 23h11

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo