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完成