MFC中动态释放BMP图片

sf_promise 2010-12-05 01:25:32
请问:
当前我用MFC在界面上点击一个按纽,动态加载了一个bmp图片,
CDC* pDC = GetWindowDC();

CBitmap* pBitmap = new CBitmap;
BITMAP BmpInfo;
CBitmap* pOldBitmap;
CDC* pDisplayMemDC=new CDC;
pDisplayMemDC->CreateCompatibleDC(pDC);

pBitmap->LoadBitmap(IDB_BITMAP1);
pOldBitmap=(CBitmap*)pDisplayMemDC->SelectObject(pBitmap);
pBitmap->GetBitmap(&BmpInfo);

// x,y为绘图位置 ,必要时此语句要有For(..;..;..)控制
pDC->BitBlt(0,0, BmpInfo.bmWidth, BmpInfo.bmHeight, pDisplayMemDC, 0, 0, SRCCOPY); pDisplayMemDC->ReleaseOutputDC();

pDisplayMemDC->SelectObject(pOldBitmap);
pBitmap->DeleteObject();

ReleaseDC(pDisplayMemDC);//记得执行以下的语句
delete pDisplayMemDC;
delete pBitmap;


现在我需要点击一个按纽将加载的bmp图片去掉?请问怎么处理,谢谢!
...全文
153 4 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
向立天 2010-12-27
  • 打赏
  • 举报
回复
您好
我是本版版主
此帖已多日无人关注
请您及时结帖
如您认为问题没有解决可按无满意结帖处理
另外本版设置了疑难问题汇总帖
并已在版面置顶
相关规定其帖子中有说明
您可以根据规定提交您帖子的链接
如您目前不想结帖只需回帖说明
我们会删除此结帖通知

见此回复三日内无回应
我们将强制结帖

相关规定详见界面界面版关于版主结帖工作的具体办法
向立天 2010-12-06
  • 打赏
  • 举报
回复
如果你是想不显示图片了可以用一个背景色吧绘制图片的区域填充一下
lyingbo 2010-12-05
  • 打赏
  • 举报
回复
调用Invalidate触发WM_PAIN消息,窗口自动重绘就行了
wltg2001 2010-12-05
  • 打赏
  • 举报
回复
现在我需要点击一个按纽将加载的bmp图片去掉?请问怎么处理,谢谢!
=======================
你上面已经用delete pBitmap; 将位图对像指针删除了,已经去掉了,不用再释放了。
如果你的意思是说想将显示的BMP图像擦除掉,那么调用Invalidate就行了。

15,980

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 界面
社区管理员
  • 界面
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧