您的位置:首页 > 其它

mfc 利用HBITMAP 和CBITMAP 显示位图文件

2012-06-12 11:17 411 查看
利用双缓冲技术;

源码:

void showBMP()

{

CString   str;     

CString   filter="Bitmap    Files(*.bmp)|*.bmp|Wmf   Files(*.wmf)|*.wmf||";   

CFileDialog   dlg(TRUE,NULL,NULL,OFN_HIDEREADONLY|OFN_OVERWRITEPROMPT,(LPCTSTR)filter,NULL);   

if (dlg.DoModal() == IDOK)

{

   str=dlg.GetPathName(); 

   HBITMAP hBitmap=(HBITMAP)LoadImage(AfxGetInstanceHandle(),str,IMAGE_BITMAP,0,0,LR_LOADFROMFILE|LR_CREATEDIBSECTION);

   CBitmap bitmap;    

   bitmap.Attach(hBitmap); //关联位图对象

   CDC* pDC=GetDC();

   CDC dcimage;

   dcimage.CreateCompatibleDC(pDC); //内存DC

   BITMAP bmp;

   bitmap.GetBitmap(&bmp); //获取位图信息

   dcimage.SelectObject(&bitmap); //选取位图对象

   pDC->BitBlt(0,0,bmp.bmWidth,bmp.bmHeight,&dcimage,0,0,SRCCOPY); //显示



};
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  mfc filter null image