窗口类(Windows 和消息)

本主题介绍窗口类的类型、系统如何定位它们以及定义属于窗口的默认行为的元素。

窗口类是系统用作创建窗口的模板的一组属性。 每个窗口都是窗口类的成员。 所有窗口类都是特定于进程的。

在本部分中

名字 描述
关于窗口类 讨论窗口类。 每个窗口类都有由同一类的所有窗口共享的关联窗口过程。 窗口过程处理该类的所有窗口的消息,因此控制其行为和外观。
使用窗口类 演示如何注册本地窗口并将其用于创建主窗口。
Window 类引用 包含 API 参考。

 

Window 类函数

名字 描述
GetClassInfoEx 检索有关窗口类的信息,包括与窗口类关联的小图标的句柄。 GetClassInfo 函数不会检索小图标的句柄。
GetClassLong 从与指定窗口关联的 WNDCLASSEX 结构中检索指定的 32 位()值。
GetClassLongPtr 从与指定窗口关联的 WNDCLASSEX 结构中检索指定的值。
GetClassName 检索指定窗口所属的类的名称。
GetWindowLong 检索有关指定窗口的信息。 该函数还会检索 32 位()值,该值在指定的偏移量处进入额外的窗口内存。
GetWindowLongPtr 检索有关指定窗口的信息。 该函数还会在额外的窗口内存中检索指定偏移量处的值。
RegisterClass 注册一个窗口类,以便在调用 CreateWindowCreateWindowEx 函数时使用。
RegisterClassEx 注册一个窗口类,以便在调用 CreateWindowCreateWindowEx 函数时使用。
SetClassLongPtr 将指定值替换为额外类内存中的指定偏移量或指定窗口所属的类的 WNDCLASSEX 结构。
SetClassWord 将指定偏移量处的 16 位 (WORD) 值替换为指定窗口所属的窗口类的额外类内存。
SetWindowLong 更改指定窗口的属性。 该函数还将指定偏移量处的 32 位(long)值设置为额外的窗口内存。
SetWindowLongPtr 更改指定窗口的属性。 该函数还会在额外的窗口内存中设置指定偏移量的值。
UnregisterClass 取消注册窗口类,释放类所需的内存。

 

以下函数已过时。

名字 描述
GetClassInfo 检索有关窗口类的信息。
注意:GetClassInfo 函数已被 GetClassInfoEx 函数取代。 但是,如果不需要有关类小图标的信息,仍可以使用 GetClassInfo
GetClassWord 检索指定窗口所属窗口类的额外类内存中的 16 位 (WORD) 值。 注意: 此函数已弃用,但除 nIndex 设置为GCW_ATOM以外的任何用途。 此函数仅用于与 16 位版本的 Windows 兼容。 应用程序应使用 GetClassLong 函数。
SetClassLong 将指定偏移量处的指定 32 位()值替换为指定窗口所属的类的 WNDCLASSEX 结构。 注意: 此函数已被 SetClassLongPtr 函数取代。 若要编写与 32 位和 64 位版本的 Windows 兼容的代码,请使用 SetClassLongPtr

 

窗口类结构

名字 描述
WNDCLASS 包含由 RegisterClass 函数注册的窗口类属性。
此结构已被与 RegisterClassEx 函数一起使用的 WNDCLASSEX 结构取代。 如果不需要设置与窗口类关联的小图标,仍可以使用 WNDCLASSRegisterClass
WNDCLASSEX 包含窗口类信息。 它与 RegisterClassExGetClassInfoEx 函数一起使用。
WNDCLASSEX 结构类似于 WNDCLASS 结构。 有两个区别。 WNDCLASSEX 包括 cbSize 成员,该成员指定结构的大小,以及 hIconSm 成员,该成员包含与窗口类关联的小图标的句柄。