以文本方式查看主题 - 计算机科学论坛 (http://bbs.xml.org.cn/index.asp) -- 『 C/C++编程思想 』 (http://bbs.xml.org.cn/list.asp?boardid=61) ---- 采用MFC实现位图显示 (http://bbs.xml.org.cn/dispbbs.asp?boardid=61&rootid=&id=87521) |
-- 作者:葛靖青001 -- 发布时间:11/7/2010 12:07:00 PM -- 采用MFC实现位图显示 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 |
W 3 C h i n a ( since 2003 ) 旗 下 站 点 苏ICP备05006046号《全国人大常委会关于维护互联网安全的决定》《计算机信息网络国际联网安全保护管理办法》 |
31.250ms |