MFC绘图--显示位图
2010-01-25 16:28
309 查看
1、将位图加载到内存DC中
2、将内存DC中的内容绘制到要显示位图的DC中
*MFC中没有直接用来加载位图的函数,可以使用WindowsAPI中的
LoadImage函数来加载位图,其原型如下:
HANDLE LoadImage(
HINSTANCE hinst, //位图实体句柄,若位图在硬盘或者资源文件
//中,则将该参数设为NULL
LPCTSTR lpszName, //位图所在路径及文件名,或者资源名称
UINT uType, //加载位图的类型:
//1、IMAGE_BITMAP
//2、IMAGE_CURSOR
//3、IMAGE_ICON
int cxDesired, //位图宽度,像素
int cyDesired, //位图高度,像素
UINT fuLoad //加载方式比如LR_LOADFROMFILE等
);
步骤:
CClientDC dc(this);
CDC *mdc=new CDC;
//CDC只有空构造函数,也就是说无法通过拷贝函数来构造一个
//与dc相同的mdc,即mdc=dc非法。
//CreateCompatibleDC建立一个适合指定pDC的内存设备上下文
mdc->CreateCompatibleDC(&dc);
CBitmap bitmap;
//CBitmap继承自CGdiObject
//其成员变量m_hObject是一个句柄
//A HANDLE containing the HBITMAP, HPALETTE, HRGN, HBRUSH, HPEN, or HFONT
//attached to this object.
//可以简单记为bitmap拥有HBITMAP类型句柄m_hObject,而该句柄需要使用
//Windows API的LoadImage获得
bitmap.m_hObject=(HBITMAP)::LoadImage(NULL,"b1.bmp",IMAGE_BITMAP,500,400,LR_LOADFROMFILE);
mdc->SelectObject(bitmap);
CRect rect;
//取得客户区域大小
GetClientRect(&rect);
//BitBlt()将位图贴到要显示的DC
dc.BitBlt(0,0,rect.right,rect.bottom,mdc,0,0,SRCCOPY);
//最后要记得在析构函数中释放mdc
delete mdc
2、将内存DC中的内容绘制到要显示位图的DC中
*MFC中没有直接用来加载位图的函数,可以使用WindowsAPI中的
LoadImage函数来加载位图,其原型如下:
HANDLE LoadImage(
HINSTANCE hinst, //位图实体句柄,若位图在硬盘或者资源文件
//中,则将该参数设为NULL
LPCTSTR lpszName, //位图所在路径及文件名,或者资源名称
UINT uType, //加载位图的类型:
//1、IMAGE_BITMAP
//2、IMAGE_CURSOR
//3、IMAGE_ICON
int cxDesired, //位图宽度,像素
int cyDesired, //位图高度,像素
UINT fuLoad //加载方式比如LR_LOADFROMFILE等
);
步骤:
CClientDC dc(this);
CDC *mdc=new CDC;
//CDC只有空构造函数,也就是说无法通过拷贝函数来构造一个
//与dc相同的mdc,即mdc=dc非法。
//CreateCompatibleDC建立一个适合指定pDC的内存设备上下文
mdc->CreateCompatibleDC(&dc);
CBitmap bitmap;
//CBitmap继承自CGdiObject
//其成员变量m_hObject是一个句柄
//A HANDLE containing the HBITMAP, HPALETTE, HRGN, HBRUSH, HPEN, or HFONT
//attached to this object.
//可以简单记为bitmap拥有HBITMAP类型句柄m_hObject,而该句柄需要使用
//Windows API的LoadImage获得
bitmap.m_hObject=(HBITMAP)::LoadImage(NULL,"b1.bmp",IMAGE_BITMAP,500,400,LR_LOADFROMFILE);
mdc->SelectObject(bitmap);
CRect rect;
//取得客户区域大小
GetClientRect(&rect);
//BitBlt()将位图贴到要显示的DC
dc.BitBlt(0,0,rect.right,rect.bottom,mdc,0,0,SRCCOPY);
//最后要记得在析构函数中释放mdc
delete mdc
相关文章推荐
- MFC绘图7--显示位图
- 《工作笔记》 mfc 利用HBITMAP 和CBITMAP 显示位图文件
- MFC 显示位图
- MFC显示位图(2-2)
- MFC对话框上显示位图
- MFC中显示一张位图
- mfc 利用HBITMAP 和CBITMAP 显示位图文件
- 初学MFC——位图无法显示
- mfc 利用HBITMAP 和CBITMAP 显示位图文件(双缓冲)
- mfc 显示位图
- MFC双缓冲显示位图
- MFC 在静态文本控件和picture控件上显示位图
- MFC中显示 .bmp格式的位图
- MFC中显示位图的方法
- mfc 利用HBITMAP 和CBITMAP 显示位图文件
- MFC如何显示位图
- MFC封装接口DLL 对话框无法显示,或者位图加载不上
- MFC中使用文本控件实现图标和位图的显示
- MFC中实现简单的位图显示、处理
- MFC下位图显示