微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

从 CreateWindow() 返回的 HWND 的格式值是多少?

如何解决从 CreateWindow() 返回的 HWND 的格式值是多少?

这是 32 位机器上(理论上)2^32-1 的内存地址吗? 我想知道的原因是我试图以某种方式将 CreateWindow() 返回的 HWND 与类实例相关联,所以为了知道如何正确存储该 HWND 值,我需要知道这些值是什么,所以我可以看到什么更适合,AA 数组,带有哈希表的链表等等。

解决方法

From the documentation for MFC(为避免混淆:这是文档,其中文章中的 CWnd 和“window object”是您的中的 C++ 类程序,而不是 USER32):

另一方面,Windows 窗口 is an opaque handle 到一个内部 Windows 数据结构,该数据结构对应于一个窗口并在存在时消耗系统资源。

不透明句柄必须被视为“黑匣子”或原子团,不得更改,也可能不会通过内省显示任何有用的信息。

另请参阅维基百科:https://en.wikipedia.org/wiki/Handle_(computing)

,

要存储一个值,你只需要知道它的类型。如 Windows Data Types 所述,HWNDHANDLE 的类型别名,PVOIDvoid* 的类型别名,而 HWND 又是 {{1}} 的类型别名}}。

换句话说:{{1}} 是指向未知数据的指针。它是指针大小的并且可以简单地复制。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。