MFC单文档下读取BMP图片显示

1.建立单文档MFC程序(我用的是VS2008),加入菜单命令,ImageSourse_ImageFromFile


2.定义相关变量:

         CString ImagePath;
HBITMAP  hBitmap;
CBitmap m_Bitmap;
BITMAP  Bitmap;
int  ImageWidth,ImageHeight;
CDC  MemDC;

3.在菜单命令下编辑代码:

      DeleteObject(&m_Bitmap);
     MemDC.DeleteDC();
     CFileDialog  ImageFileDialog(TRUE);
      ImageFileDialog.m_ofn.lpstrFilter="*.bmp";
    if (IDOK== ImageFileDialog.DoModal())
   {
ImagePath=ImageFileDialog.GetPathName();

hBitmap=(HBITMAP)LoadImage(NULL,ImagePath.GetBuffer(260),0,0,IMAGE_BITMAP,LR_LOADFROMFILE);

if (hBitmap==NULL)
{
MessageBox("Load Bitmap Fail");
return;
}

if (m_Bitmap.m_hObject)
{
m_Bitmap.Detach();
}
m_Bitmap.Attach(hBitmap);
m_Bitmap.GetBitmap(&Bitmap);
ImageWidth=Bitmap.bmWidth;                                                                 
ImageHeight=Bitmap.bmHeight;
   }

CDC *pDC=GetDC();
MemDC.CreateCompatibleDC(pDC);
MemDC.SelectObject(&m_Bitmap);
Invalidate(TRUE);


4.在Ondraw中添加代码:

if (m_Bitmap.m_hObject)
{
CRect  rect;
GetClientRect(&rect);
pDC->StretchBlt(rect.left,rect.top,rect.Width(),rect.Height(),&MemDC,0,0,ImageWidth,ImageHeight,SRCCOPY);

}

5.OK完成



你可能感兴趣的:(vs2008,机器视觉,自动化,visual,studio,2008,bmp)