GDI对象的释放

luo_xuewu 2010-07-17 10:39:14
1,像CBitmap,CPen,CBrush等CGdiObject对象,它们的生命周期结束时,释构函数会自动调用DeleteObject成员函数清除所占内存吗,我个人感觉是会,因为如果定义了一个局部CBitmap对象,把它用于图形标记菜单,是不会出现的,是这样的吗?MSDN上说得感觉不清不楚,还请各位高手们指教.

2,看到CGdiOBject对象定义了一个Detach函数,这个函数是用以CGdiObject局部对象中,让对象的释构函数不致于清除GDI对象,
就如上面所说的,这样就可以把一个局部CBitmap对象用于图形标记菜单,但如果这样的话,那对象释构时不清除内存,GDI对象所占的内存不是会一直存在,造成内存泄漏?在CMenu中倒是有用,因为在程序结束时会自动清除当前所用的菜单,可CMenu也不是从CGdiObject继承的,为什么CGdiObject对象也会定义这个函数?
...全文
52 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
luo_xuewu 2010-07-17
  • 打赏
  • 举报
回复
一楼...
饭fan有引力 2010-07-17
  • 打赏
  • 举报
回复
友情帮顶下

64,675

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

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