Bild in MFC Dialog anzeigen



  • Hallo,

    ich möchte mit einer MFC Anwendung mittels "Browse" ein Bild öfnnen und dieses dann in der Dialogbox anzeigen lassen. Geht das mit Picture Control?

    Bisher habe ich folgenden Code, mit dem ich ein Bild auswählen kann:

    void CmfcclientDlg::OnOpen()
    {
      CFileDialog dlg(TRUE, _T("*.bmp"), "",                   
       OFN_FILEMUSTEXIST|OFN_PATHMUSTEXIST|OFN_HIDEREADONLY,
       "JPG files (*.jpg)|*.jpg|BMP files (*.bmp) |*.bmp|AVI files (*.avi) |*.avi| All Files (*.*)|*.*||",NULL);
    
      char title[]= {"Browse"};
      dlg.m_ofn.lpstrTitle= title;
    
      if (dlg.DoModal() == IDOK) {
        CString path= dlg.GetPathName();
    
      }
    }
    

    was muss ich denn da ergänzen?
    Vielen Dank

    E





  • aber wie ist das mit der Picture Control???? Ich will es ja quasi als "thumbnail" angezeigt bekommen?



  • Wenn Du Bilder und Filme(*.avi) Anzeigen willst, dann nehm doch den Browser. Ansonsten schau hier:

    http://www.codeproject.com/bitmap/render.asp



  • es geht ja darum, dass das Bild ganz klein in meiner Dialogbox als "Vorschau" angezeigt wird. In einem eigenen Fenster kann ichs schon öffnen.



  • HRESULT Render(
      HDC hdc, //Handle of device context on which to render the image
      long x,  //Horizontal position of image in hdc
      long y,  //Vertical position of image in hdc
      long cx, //Horizontal dimension of destination rectangle
      long cy, //Vertical dimension of destination rectangle
      OLE_XPOS_HIMETRIC xSrc,
               //Horizontal offset in source picture
      OLE_YPOS_HIMETRIC ySrc,
               //Vertical offset in source picture
      OLE_XSIZE_HIMETRIC cxSrc,
               //Amount to copy horizotally in source picture
      OLE_YSIZE_HIMETRIC cySrc,
               //Amount to copy vertically in source picture
      LPCRECT prcWBounds
               //Pointer to position of destination for a metafile hdc
    );
    

    Dann würde ich versuchen cx und cy auf die Größe meines Zielbereiches einzustellen, sollte dich dann gehen.
    Wenn nicht, erstell dir ne Bitmap im Speicher darauf einen DC und rendere das Bild in deine MemBitmap und Blitte diese mit StretchBlt in deine Vorschau

    Gruß Matthias


Anmelden zum Antworten