这一段基本的GDI对象如何释放?
时间:2011-12-13
来源:互联网
这一段基本的GDI对象如何释放?
HWND playWnd = GetPlayWnd(); //GetPlayWnd(); 返回一个句柄,自己封的一个函数
HDC hdc = ::GetDC(playWnd);
CDC *playDC = CDC::FromHandle(hdc);
被句柄泄露和GDI对象泄露搞怕了,有点混淆。
HBitmap句柄 使用LoadImage()初始化的要自己释放吗? 谢谢了。 我也知道Get的要Release,Create的要Delete,所以希望大家解释的详细些,谢谢了.
HWND playWnd = GetPlayWnd(); //GetPlayWnd(); 返回一个句柄,自己封的一个函数
HDC hdc = ::GetDC(playWnd);
CDC *playDC = CDC::FromHandle(hdc);
被句柄泄露和GDI对象泄露搞怕了,有点混淆。
HBitmap句柄 使用LoadImage()初始化的要自己释放吗? 谢谢了。 我也知道Get的要Release,Create的要Delete,所以希望大家解释的详细些,谢谢了.
作者: xiaoxiaoyu85 发布时间: 2011-12-13
一般GetDC就对应ReleaseDC,Create...DC就对应Delete...DC
LoadImage完成以后需要释放的
Bitmap DeleteObject
Cursor DestroyCursor
Icon DestroyIcon
LoadImage完成以后需要释放的
Bitmap DeleteObject
Cursor DestroyCursor
Icon DestroyIcon
作者: VisualEleven 发布时间: 2011-12-13
部长换图标了啊,呵呵,多谢。。
作者: xiaoxiaoyu85 发布时间: 2011-12-13
用GetDC()得到的DC, 必须调用ReleaseDC()
用CreateDC()创建的DC, 必须调用DeleteDC()
======================================================
GetDC()是得到已经创建的dc(非自己创建),所以用ReleaseDC()释放对dc引用,如果你对GetDC()得到的dc进行DeleteDC(),相当于删除了“人家”的dc,这当然不合理,所以会有异常;
而CreateDC()是自己创建的dc,好比你new一个对象,用完后就要delete,所以是DeleteDC()。
不知道我讲的明白不
用CreateDC()创建的DC, 必须调用DeleteDC()
======================================================
GetDC()是得到已经创建的dc(非自己创建),所以用ReleaseDC()释放对dc引用,如果你对GetDC()得到的dc进行DeleteDC(),相当于删除了“人家”的dc,这当然不合理,所以会有异常;
而CreateDC()是自己创建的dc,好比你new一个对象,用完后就要delete,所以是DeleteDC()。
不知道我讲的明白不
作者: echoyin59 发布时间: 2011-12-13
要DeleteObject
作者: yayafu 发布时间: 2011-12-13
相关阅读 更多
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28