对象、句柄、ID之间的区别
2024-10-19 09:40:26
对象是C++的概念,C++的类对象
句柄是Windows SDK的概念,指向某种资源的一种“指针”(有时候底层不一定是指针)
资源ID在MFC里仅仅是一个宏,也就是个整数。
其实,句柄是控件在数据结构上的外部标识代理,因为不便于通过内存指针暴露(防止用户通过指针越权修改,暴露细节,同时破坏黑盒式的封装)用户,所以便通过一个代理指针,即句柄来代理一个windows对象,可以近似的把句柄理解为一个指针,但是该指针不暴露内存细节,只是一个代理而已。
ID是用户定义的值,句柄是系统生成并管理的。
ID的作用有哪些呢?ID是一个宏 在你创建该组件的时候 由IDE自动生成的。
对于顶级窗口,ID不存在,它的含义变成了HMENU,窗口拥有的菜单句柄。
对于子窗口,ID在创建窗口时就能随意指定,可以相同,也可以不同,可以调用 GetDlgItem 检索ID对应的窗口句柄。但ID在某些特殊情形下有特殊含义,当子窗口是 RADIO 类型时,多个RADIO需要分配相同的ID(且属于同一个GROUP)才被认为是一组单选项,否则这些单选项各自独立。除此之外,ID基本上没有作用。
最新文章
- address_add
- Android开发艺术探索学习笔记(十一)
- MyBatis对应的xml的数据类型
- codevs 2152 滑雪
- 1.js编程风格。 --- 编写可维护的javascript
- MySQL汇总数据
- CF #299 div1 B. Tavas and Malekas KMP-next数组
- docker 安装 MySQL 8,并减少内存占用 记录
- .NET开发中基础问题,CODE First AND DB First(大牛自动忽略,小白可以看一下)
- Centos6.5 安装MYSQL 5.5 -5.6.-5.7 一键yum快速安装 ,初始配置
- 消除element.style { }
- zabbix添加对centos系统cpu使用率百分比的监控
- Spark中groupByKey、reduceByKey与sortByKey
- bat处理打开关闭exe
- Windows7 64bit+python3.6环境下安装OpenCV3.3
- pandas:由列层次化索引延伸的一些思考
- 差分约束系统+spfa(B - World Exhibition HDU - 3592 )
- 微商城三级分销源码公众号开发 微分销 C#源码
- 多个id或class属性相同的元素绑定事件
- LeetCode-Water and Jug Problem