窗口类 (Windows和消息)

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

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

本节内容

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

 

Window 类函数

名称 说明
GetClassInfoEx 检索有关窗口类的信息,包括与窗口类关联的小图标的句柄。 GetClassInfo 函数不会检索小图标的句柄。
GetClassLong 从与指定窗口关联的 WNDCLASSEX 结构中检索指定的 32 位 () 值。
GetClassLongPtr 从与指定窗口关联的 WNDCLASSEX 结构中检索指定的值。
GetClassName 检索指定窗口所属的类的名称。
GetWindowLong 检索有关指定窗口的信息。 该函数还会在指定的偏移量处检索 32 位 (长) 值,以额外的窗口内存。
GetWindowLongPtr 检索有关指定窗口的信息。 该函数还会在额外的窗口内存中检索指定偏移量处的值。
RegisterClass 注册一个窗口类,供后续用于对 CreateWindow 或 CreateWindowEx 函数的调用。
RegisterClassEx 注册一个窗口类,供后续用于对 CreateWindow 或 CreateWindowEx 函数的调用。
SetClassLongPtr 在额外类内存或指定窗口所属的类的 WNDCLASSEX 结构中替换指定偏移量处的指定值。
SetClassWord 将 16 位 (WORD) 值替换为指定窗口所属的窗口类的额外类内存。
SetWindowLong 更改指定窗口的属性。 该函数还会将 32 位 (长) 值设置为额外的窗口内存中的指定偏移量。
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 成员,该成员包含与窗口类关联的小图标的句柄。