请问handle与id的区别是什么? 如题,经常一个窗口既然有一个hwnd,又有一个id,两者有何异动?有一个不是就可以惟一标明了吗?何 来两个东东? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 问得有深度,呵呵。这个问题偶也没有研究清楚。不过我知道hwnd是唯一的,id大概就不一定唯一了。我记忆中,id主要用来发送通知消息的。例如,按钮被按下时,将向parent窗口发送wm_command消息,同时携带自己的id. 还有就是父窗口可以通过id取得子窗口的hwndGetDlgItem 不仅是窗口,比如thread等很多东西都同时有handle和id.handle是不是指向某一块内存区域的指针?如果不是唯一的,那为何又叫id呢? 我觉得hwnd象一个全局变量,而id是一个局部变量。 handle在整个windows中是唯一的,而id在最小的范围内是唯一的handle可以直接在所有程序中应用,因为它是整个windows系统的资源。但id却只可以从最小范围内使用,它只属于最小范围内的资源。这也是API中大多数都有handle这样的参数,而从来没有id这样的参数,但类的成员函数就有此参数,比如GetDlgItem(id)大概可以这样理解,深层的含义不得而知 不太清楚,只知道handle范围大,ID范围小。关注高手回答! 我的理解是,Handle是为看不见的资源提供的ID,都是唯一标识资源的数据结构 handle一般内核对象,他需要系统创建。他的结构很复杂,通过handle可以找到窗口和其他。但ID不是内核对象,他只具有标示性。可以这样说,在系统里,没有两个一样的handle,但有可能ID一样(不同进程)。可以看一下windows核心编程 那handle是系统分配的吗?(随机?)id呢?也是吗? 我的理解:handle是对象的一个标识。 对窗口而言,handle确实是系统根据一定的算法分配的唯一标识符,窗口ID可以有程序自行指定,但对线程等其他对象则未必 由于窗口每次重新创建时handle的值是不同的,而ID的值则可以由程序指定,当窗口创建时后创建后,总是可以设定一个特定的ID,这也是在窗口消息中采用ID作为控件窗口的识别特征的原因 我也正晕着这个问题。那为什么要把ID转成名字呢?ID和ID名,有什么区别?象下面得用法:Create (NULL, _T ("My Application"), WS_OVERLAPPEDWINDOW, rectDefault, NULL, MAKEINTRESOURCE (IDR_MAINFRAME));还有ID的命名规范是什么?IDD_IDR_... 窗口ID不同于其它的ID。比如说线程ID,它在系统范围内是唯一,可handle只在进程中唯一。但是窗口ID与handle刚好相反,它的handle在系统范围内是唯一,可ID只在窗口中就不一定是唯一。窗口handle表明可以对一个窗口资源进行相应的操作,相应的它由user32.dll进行管理。而ID分系统的ID和用户定义的ID,像IDC_STATIC等就是一个系统ID,在当前相同级别的窗口中它们都可以有此相同ID,但是当为用户ID时就需要是唯一性。基本上可以这么理解,ID是一个窗口自身的标识符,而handle是操作系统对窗口操作的标识符 handle是系统分配的!作为标识整个系统的资源用的! 而id是可以由程序员自己给的——当然,也可以由编译器默认分配一个id! 有些窗口,是不会有id的(比如主窗口,顶端窗口),但不会有哪个窗口,是没有handle的! id主要是由来控制子窗口的,最常见的,就是getdlgitem()之类的函数! handle应是操作系统唯一标识,由系统分配内存指针,在整个操作系统包括其他应用程序,都可以通过handle访问。id则是项目里的标识,可以用户指定。 handle是系统分配的,全局标识ID是应用程序分配的,局部标识 C#数据库开发 MM_LOMETRIC映像模式下使用AlphaBlend出现无效参数错误 关于CString和Sendto一个类的问题 求:ADO接口_RecordsetPtr::GetCollect()提取字符串时到底给你隐式转换了什么? 主对话框怎么让无模式子对话框显示内容 请问各位大虾,可以推荐一个开源的图形库给我吗?可以做到和matlab图形库类似的功能! 有关滚动条的问题 菜鸟提问:如何分析一个文件的格式! 类成员变量的地址在哪里啊? 求一个矩阵的类 问个字符串类的问题 请高手指点 急:当向ftp服务器发送STOR /file.html/r/n时,服务器返回550代码,怎么回事?
这个问题偶也没有研究清楚。
不过我知道hwnd是唯一的,id大概就不一定唯一了。
我记忆中,id主要用来发送通知消息的。
例如,按钮被按下时,将向parent窗口发送wm_command消息,同时携带自己的id.
GetDlgItem
关注高手回答!
id呢?也是吗?
rectDefault, NULL, MAKEINTRESOURCE (IDR_MAINFRAME));
还有ID的命名规范是什么?
IDD_
IDR_
...
但是窗口ID与handle刚好相反,它的handle在系统范围内是唯一,可ID只在窗口中就不一定是唯一。窗口handle表明可以对一个窗口资源进行相应的操作,相应的它由user32.dll进行管理。而ID分系统的ID和用户定义的ID,像IDC_STATIC等就是一个系统ID,在当前相同级别的窗口中它们都可以有此相同ID,但是当为用户ID时就需要是唯一性。基本上可以这么理解,ID是一个窗口自身的标识符,而handle是操作系统对窗口操作的标识符
作为标识整个系统的资源用的!
而id是可以由程序员自己给的——当然,也可以由编译器默认分配一个id! 有些窗口,是不会有id的(比如主窗口,顶端窗口),但不会有哪个窗口,是没有handle的! id主要是由来控制子窗口的,最常见的,就是getdlgitem()之类的函数!
ID是应用程序分配的,局部标识