【发布时间】:2021-01-12 01:16:24
【问题描述】:
在 32 位机器上,这是一个范围为(理论上)2^32-1 的内存地址吗? 我想知道的原因是我试图以某种方式将 CreateWindow() 返回的 HWND 与类实例相关联,所以为了知道如何正确存储该 HWND 值,我需要知道这些值是什么,所以我可以看看什么更适合,AA数组,带哈希表的链表等等。
【问题讨论】:
-
HWND 是一个不透明的值。 IOW,除了它是一个窗口句柄之外,您对此一无所知。 MS 没有记录内部结构,因为它不应该用作任何东西,只能用作窗口句柄。
-
如果您正式要求格式 - 作为一般知识但不用于使用 -
HWND的低 16 位用作 Windows 句柄表中的索引。接下来的 16 位用作重用索引 - 当第一次使用单元时,此索引为 1。当重用此单元时,索引增加 1。依此类推 -
将 CreateWindow() 返回的 HWND 与类实例相关联 - 为此使用了
GWLP_USERDATA