MFC内存显示位图

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MFC内存显示位图相关的知识,希望对你有一定的参考价值。

类CBitmap封装了Windows图形设备接口(GDI)中的位图,并且提供了操纵位图的成员函数。使用CBitmap对象之前要先构造CBitmap对象,调用其中的一个初始化成员函数设置位图对象的句柄。此后就可以调用其它成员函数了。要了解有关使用像CBitmap这样的图形对象的详细信息,请参阅联机文档“Visual C++ 程序员指南”中的“图形对象”。

#include <afxwin.h>

CDC MemDC;  
 BITMAP   bm;  
 CBitmap bmp; 
 //从外部加载位图文件
 HBITMAP bitmap=(HBITMAP)LoadImage(AfxGetInstanceHandle(),_T("1.bmp"),IMAGE_BITMAP,0,0,
 LR_LOADFROMFILE);  
 bmp.DeleteObject();//如果加载过先解除绑定
 if(!bmp.Attach(bitmap))  
 {  
   MessageBox(0,_T("导入背景图失败!"),_T("提示"),MB_OK);  
   return;  
 }  
  
//显示位图  
bmp.GetObject(sizeof(BITMAP),&bm);  
CDC pDC;  
pDC.m_hDC = GetDC(this->Handle);  
MemDC.CreateCompatibleDC(&pDC);  
MemDC.SelectObject(&bmp);  
pDC.BitBlt(0, 0, bm.bmWidth, bm.bmHeight, &MemDC, 0, 0, SRCCOPY);  
MemDC.DeleteDC();

//或者如下显示:
/*CDC * pDC1 = this->GetDC();
MemDC.CreateCompatibleDC(pDC1);  
MemDC.SelectObject(&bmp);  
pDC1->BitBlt(0, 0, bm.bmWidth, bm.bmHeight, &MemDC, 0, 0, SRCCOPY);  
MemDC.DeleteDC();*/

技术分享

以上是关于MFC内存显示位图的主要内容,如果未能解决你的问题,请参考以下文章

在 MFC 中保存位图时出错

如何在android中使用imageloader释放位图内存?

带位图和文本的 MFC 按钮

mfc 图片列表显示

为啥MFC只能用位图不能用png图?

MFC 显示位图 缩放与拖动的矛盾