SelcetObjcet()函数的用法——hOldPen的存在
来源:互联网 发布:枪神纪刷点卷软件 编辑:程序博客网 时间:2024/06/05 16:22
This function selects an object into a specified device context. The new object replaces the previous object of the same type.
HGDIOBJ SelectObject( HDC hdc, HGDIOBJ hgdiobj);
Parameters
- hdc
- [in] Handle to the device context.
- hgdiobj
- [in] Handle to the object to be selected.
The specified object must have been created by using one of the following functions.
Return Values
If the selected object is not a region, the handle of the object being replaced indicates success.
If the selected object is a region, one of the following values indicates success.
Remarks
This function returns the previously selected object of the specified type.
An application should always replace a new object with the original, default object after it has finished drawing with the new object.
An application cannot select a bitmap into more than one device context at a time.
两点说明:
这个函数的功能:将一个新的绘画对象选进设备中。
返回值:是DC中原来的、同类型的(绘画)对象。这一点很重要,通常需要新建一个(以PEN为例)hOldPen用于保存原来的PEN,在用新的PEN作为完图,再将DC中的PEN恢复为原来的状态——即SelectObject(hDC,hOldPen).
示例:(这是找到的一个WIN32编程示范,作用一样,可以说明问题)
程序效果如图:
另外:
其中的DelteObject()的使用非常重要,不然会造成“内在泄露”。相关的一段文字叙述如下:
Windows显示设备的属性,共有下面几种:位图、画刷、字体、画笔、区域。如果要设置它们到当前设备里,就需要使用SelectObject函数,比如上面介绍的字体设置,就会用到这个函数。
当你创建一个位图时,这时Windows就会在内存里分配一块内存空间,用来保存位图的数据。
当你创建字体时,也会分配一块内存空间保存字体。
如果程序只是分配,而不去删除,就会造成内存使用越来越多,最后导到Windows这幢大楼倒下来。
如果你忘记删除它,就造成了内存泄漏。
因此,当你创建显示设备资源时,一定要记得删除它们啊,否则运行你的程序越长,就导致系统不稳定。记得使用DeleteObject函数去删除它们,把占用的内存释放回去给系统。
- SelcetObjcet()函数的用法——hOldPen的存在
- js高级——传统构造函数存在的问题
- 虚析构函数存在的理由
- 仿函数存在的原因
- Cpp--虚函数的存在
- 解析php session_set_save_handler 函数的用法(将session存在数据库中的方法)
- SetTimer函数的用法——转载
- SetTimer函数的用法——转载
- SetTimer函数的用法——转载
- SetTimer函数的用法——转载
- Python笔记——函数的用法
- MFC——SetTimer函数的用法
- 字典用法的补充—index函数
- PHP下常见的检查函数(变量是否存在,文件是否存在 函数是否存在 方法是否存在)
- js高级——使用原型解决构造函数存在的问题
- Asp检测文件是否存在的函数
- 确保路径存在的函数 ensurePathExist
- 函数设计中存在的一些问题
- 如何用U盘安装操作系统(无光驱也能安装系统)
- struts2.0国际化
- unsigned 和 int
- (<虚拟项目>广告管理投放系统-2)Sql Server 2008 R2主数据管理系统的安装和配置
- android 线程间的通信
- SelcetObjcet()函数的用法——hOldPen的存在
- 软件架构师核心技能养成计划
- cache oblivious algorithm
- 宽字符处理函数函数与普通函数对照表
- 一个简单的弹出对话框数据成员检验问题
- 郁闷中
- PASCAL基础-程序体
- mfc中调用cout
- shell重定向