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); //显示
}
};
源码:
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 利用HBITMAP 和CBITMAP 显示位图文件(双缓冲)
- mfc 利用HBITMAP 和CBITMAP 显示位图文件
- 《工作笔记》 mfc 利用HBITMAP 和CBITMAP 显示位图文件
- mfc 利用HBITMAP 和CBITMAP 显示位图文件
- mfc 位图显示方法 使用cbitmap和hbitmap
- VC/MFC怎样将位图CBitmap对象保存成为bmp格式文件?(你在网上找的不一定灵,看我的一定灵)
- VC/MFC怎样将位图CBitmap对象保存成为bmp格式文件? from http://coding1688.iteye.com/blog/1547035
- 位图文件结构及MFC显示
- MFC--利用Haru库生成PDF文件
- MFC中实现简单的位图显示、处理
- MFC中显示一张位图
- 利用DataGrid显示某目录下的所有文件
- MFC显示彩色拷贝位图的方法
- MFC 显示位图
- MFC显示图片和写入文件
- mfc深入浅出 系列 深入浅出mfc 第13章多重文件与多重显示
- OpenGL加载、显示、截图、保存位图文件
- linux 下利用ls grep 和正则表达式实现目录和文件的分开显示
- Asp.Net 上传大文件专题(4)--利用ajax技术显示上传进度
- MFC双缓冲显示位图