对象是C++的概念,C++的类对象

句柄是Windows SDK的概念,指向某种资源的一种“指针”(有时候底层不一定是指针)

资源ID在MFC里仅仅是一个宏,也就是个整数。

其实,句柄是控件在数据结构上的外部标识代理,因为不便于通过内存指针暴露(防止用户通过指针越权修改,暴露细节,同时破坏黑盒式的封装)用户,所以便通过一个代理指针,即句柄来代理一个windows对象,可以近似的把句柄理解为一个指针,但是该指针不暴露内存细节,只是一个代理而已。

ID是用户定义的值,句柄是系统生成并管理的。

ID的作用有哪些呢?ID是一个宏  在你创建该组件的时候  由IDE自动生成的。
对于顶级窗口,ID不存在,它的含义变成了HMENU,窗口拥有的菜单句柄。
对于子窗口,ID在创建窗口时就能随意指定,可以相同,也可以不同,可以调用 GetDlgItem 检索ID对应的窗口句柄。但ID在某些特殊情形下有特殊含义,当子窗口是 RADIO 类型时,多个RADIO需要分配相同的ID(且属于同一个GROUP)才被认为是一组单选项,否则这些单选项各自独立。除此之外,ID基本上没有作用。

对象、句柄、ID之间的区别的更多相关文章

  1. HttpServletRequest对象请求转发和HttpServletResponse对象请求重定向之间的区别

    HttpServletRequest对象request代表浏览器请求对象,HttpServletResponse对象代表服务器响应对象,当用浏览器访问web服务器,发出请求时,Servlet调用ser ...

  2. JS对象与Dom对象与jQuery对象之间的区别

    前言 通过问题看本质: 举例: js的写法:document.getElementById('save').disabled=true; 在jquery中我是这样写的 $("#save&qu ...

  3. Spring中Bean的命名问题(id和name区别)及ref和idref之间的区别

    Spring中Bean的命名 1.每个Bean可以有一个id属性,并可以根据该id在IoC容器中查找该Bean,该id属性值必须在IoC容器中唯一: 2.可以不指定id属性,只指定全限定类名,如: & ...

  4. (转)Spring中Bean的命名问题(id和name区别)及ref和idref之间的区别

    Spring中Bean的命名 1.每个Bean可以有一个id属性,并可以根据该id在IoC容器中查找该Bean,该id属性值必须在IoC容器中唯一: 2.可以不指定id属性,只指定全限定类名,如: & ...

  5. 二.OC基础--1,对象的存储细节,2,#pragma mark指令,3,函数和对象方法的区别,4,对象和方法之间的关系 ,5.课堂习题

    1,对象的存储细节, 1. 当创建一个对象的时候:Person *p1 = [Person new],做了三件事情: 1,申请堆内存空间: 2,给实例变量初始化: 3,返回所申请空间的首地址; 2. ...

  6. Flask中g对象,以及g,session,flash之间的区别

    一.g对象的使用 专门用来存储用户信息的g对象,g的全称的为global g对象在一次请求中的所有的代码的地方,都是可以使用的 g对象的使用: 设置:g.变量名= 变量值 获取:g.name 注意:g ...

  7. document.getElementById("id").value与$("#id").val()之间的区别

    本文链接:https://blog.csdn.net/mottohlm/article/details/78364196....今天在项目中遇到这么一个JS报错:原因是代码中有这么一段:对,就是var ...

  8. [转]ExtJs基础--Html DOM、Ext Element及Component三者之间的区别

    要学习及应用好Ext框架,必须需要理解Html DOM.Ext Element及Component三者之间的区别. 每一个HTML页面都有一个层次分明的DOM树模型,浏览器中的所有内容都有相应的DOM ...

  9. javascrip中parentNode和offsetParent之间的区别

    首先是 parentNode 属性,这个属性好理解,就是在 DOM 层次结构定义的上下级关系,如果元素A包含元素B,那么元素B就可以通过 parentElement 属性来获取元素A. 要明白 off ...

随机推荐

  1. Linux命令 查看Linux版本和是否联网

    1.查看Linux内核版本 1.1 $ cat /proc/version [heima01@heima01 ~]$ cat /proc/version Linux version 2.6.32-57 ...

  2. eclipse导入基于maven的java项目后没有Java标志和没有maven Dependencies有解决办法

    没有java标志,不识别为Java项目,右键项目-->Properties-->Project Facets-->勾选Java   确定就可以了. 没有maven Dependenc ...

  3. Ubuntu 下修改Tomcat和Jetty默认的JDK和初始内存

    修改/etc/default/tomcat  或者  /etc/default/jetty   文件 中的 JAVA_HOME 和 JAVA_OPTS

  4. docker postgresql FATAL: could not access private key file "/etc/ssl/private/ssl-cert-snakeoil.key": Permission denied

    在docker中启动postgresql时出现错误 FATAL:  could not access private key file "/etc/ssl/private/ssl-cert- ...

  5. MapReduce作业的执行流程

    MapReduce任务执行总流程 一个MapReduce作业的执行流程是:代码编写 -> 作业配置 -> 作业提交 -> Map任务的分配和执行 -> 处理中间结果 -> ...

  6. ASPX1

    表单提交 <!--表单:收集用户的数据.---> <form method="post" action="AddInfo.ashx"> ...

  7. Flask 学习系列(四)---Jinjia2 模板继承

    1.基模板 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF ...

  8. js中Object.defineProperty()和defineProperties()

    在介绍js中Object.defineProperty()和defineProperties()之前,我们了解下js中对象两种属性的类型:数据属性和访问器属性. 数据属性 数据属性包含一个数据的位置, ...

  9. 常用API(Object、String、StringBuffer、用户登陆注册)

    常用API 今日内容介绍 u Object u String u StringBuilder 第1章 Java的API及Object类 在以前的学习过程中,我们都在学习对象基本特征.对象的使用以及对象 ...

  10. calibre电子书管理软件

    软件介绍: Calibre 是电子书管理软件,支持 Amazon.Apple.Bookeen.Ectaco.Endless Ideas.Google/HTC.Hanlin Song 设备及格式,功能十 ...