从 CreateWindow() 返回的 HWND 的格式值是什么?
What's the format value from the HWND returned from CreateWindow()?
在 32 位机器上,这是一个范围为(理论上)2^32-1 的内存地址吗?
我想知道的原因是我试图以某种方式将 CreateWindow() 返回的 HWND 关联到 class 实例,所以为了知道如何正确存储该 HWND 值,我需要知道什么是像这样的值,所以我可以看到什么更适合,AA 数组,带散列的链表 table,等等
From the documentation for MFC(为避免混淆:这是文档,其中文章中的 CWnd
和“window object”是 C++ class 在 你的 程序中,而不是 USER32
):
The Windows window, on the other hand, is an opaque handle to an internal Windows data structure that corresponds to a window and consumes system resources when present.
不透明的句柄必须被视为“黑盒”或原子团,它们不能被改变并且可能不会通过内省揭示任何有用的信息。
要存储一个值,您只需要知道它的类型。如 Windows Data Types 下所述,HWND
是 HANDLE
的类型别名,PVOID
是 PVOID
的类型别名,而 void*
又是 [=13] 的类型别名=].
换句话说:HWND
是指向未知数据的指针。它是指针大小的并且可以简单地复制。
在 32 位机器上,这是一个范围为(理论上)2^32-1 的内存地址吗? 我想知道的原因是我试图以某种方式将 CreateWindow() 返回的 HWND 关联到 class 实例,所以为了知道如何正确存储该 HWND 值,我需要知道什么是像这样的值,所以我可以看到什么更适合,AA 数组,带散列的链表 table,等等
From the documentation for MFC(为避免混淆:这是文档,其中文章中的 CWnd
和“window object”是 C++ class 在 你的 程序中,而不是 USER32
):
The Windows window, on the other hand, is an opaque handle to an internal Windows data structure that corresponds to a window and consumes system resources when present.
不透明的句柄必须被视为“黑盒”或原子团,它们不能被改变并且可能不会通过内省揭示任何有用的信息。
要存储一个值,您只需要知道它的类型。如 Windows Data Types 下所述,HWND
是 HANDLE
的类型别名,PVOID
是 PVOID
的类型别名,而 void*
又是 [=13] 的类型别名=].
换句话说:HWND
是指向未知数据的指针。它是指针大小的并且可以简单地复制。