从 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.

不透明的句柄必须被视为“黑盒”或原子团,它们不能被改变并且可能不会通过内省揭示任何有用的信息。

另外,参见维基百科:https://en.wikipedia.org/wiki/Handle_(computing)

要存储一个值,您只需要知道它的类型。如 Windows Data Types 下所述,HWNDHANDLE 的类型别名,PVOIDPVOID 的类型别名,而 void* 又是 [=13] 的类型别名=].

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