登录 用户中心() [退出] 后台管理 注册
   
您的位置: 首页 >> 程序员学前班[不再更新,只读] >> 主题: mfc gdi 类不要调用两次 create... 函数     [回主站]     [分站链接]
标题
mfc gdi 类不要调用两次 create... 函数
clq
浏览(0) + 2010-04-29 09:56:07 发表 编辑

关键字:

mfc gdi 类不要调用两次 create... 函数

    //背景
    CBrush brush_bk;
    dc.FillRect(&rect, &brush_frame);//return; 
    //brush.CreateSolidBrush(bkColor);//重复创建会造成资源泄漏,产生"所需资源不可用错误"
    brush_bk.CreateSolidBrush(bkColor);//用一个新实例来生成新的画刷


clq
2010-4-29 9:57:59 发表 编辑

不显式删除是可以的,我估计是它只简单的隐式删除了最近一个 create.. 的句柄,没有在 create.. 没有判断上一个句柄是否存在并删除.

clq
2010-4-29 10:38:31 发表 编辑

另外象 mfc 这样会自动释放的 gdi 类还有 dc 系列如果是我们自己操作 dc 一定要记得释放

hDC = ::GetDC(NULL);
::ReleaseDC(NULL, hDC);//一定要记得调用这个

字体也是
handle = CreateFontIndirectA(&logFont);    //要销毁吗?
DeleteObject(handle);

clq
2010-4-29 12:09:54 发表 编辑

注意不能 DeleteObject 一个正在用的物体.
MSDN 如果说 "Do not delete a drawing object (pen or brush) while it is still selected into a DC."


总数:3 页次:1/1 首页 尾页  
总数:3 页次:1/1 首页 尾页  


所在合集/目录



发表评论:
文本/html模式切换 插入图片 文本/html模式切换


附件:



NEWBT官方QQ群1: 276678893
可求档连环画,漫画;询问文本处理大师等软件使用技巧;求档softhub软件下载及使用技巧.
但不可"开车",严禁国家敏感话题,不可求档涉及版权的文档软件.
验证问题说明申请入群原因即可.

Copyright © 2005-2020 clq, All Rights Reserved
版权所有
桂ICP备15002303号-1