现在做毕业设计,遇到问题,希望大家帮帮忙(为了做毕业设计,正在学的MFC界面,不好意思)在一个基于对话框的程序上,添加了一个picture控件,
想用CFileDialog打开对话框打开硬盘上面的.BMP图片,并且显示在picture控件上面,
现在思维很乱,望各位大侠帮忙!!!(要不要为picture 控件关联一个变量?)
(如果有多个picture控件,显示多个bmp图,又怎么办呢?)
谢谢!!!!

解决方案 »

  1.   


    CString   strFile="bmp   Files(*.bmp)|*.bmp|All   Files(*.*)|*.*|";   
      CFileDialog   dlg(true,NULL,NULL,OFN_HIDEREADONLY|OFN_OVERWRITEPROMPT,strFile);   
      dlg.DoModal();   
      m_Original=dlg.GetPathName();   
        
        
      HBITMAP   hbmp   =   (HBITMAP)::LoadImage(NULL,   m_Original,   IMAGE_BITMAP,   0,   0,   LR_CREATEDIBSECTION   |LR_LOADFROMFILE);   
              m_OriBitmap1.SetBitmap(hbmp);
      

  2.   

    (要不要为picture 控件关联一个变量?) 
    =====================================
    CPicture这个控件的封装类其实就是CStatic类,它有一个方法SetBitmap,所以你可以为这个控件关联一个变量,这个变量类型选Control,然后用LoadImage来装入位图,就像1楼所给的代码一样,然后用关联变量调用SetBitmap
      

  3.   

    每个Picture控件关联一个变量。
    CFileDialog dlg(……);
    if (dlg.DoModal() == IDOK)
    {
    CString fileName = dlg.GetPathName();
    HBITMAP bitmap = (HBITMAP)LoadImage(NULL, fileName, IMAGE_BITMAP, 0, 0, LR_LOADFROMFILE);
    bitmap = 控件变量.SetBitmap(bitmap);
    DeleteObject(bitmap);
    }