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



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值