Windows 和消息) (窗口类

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

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

本节内容

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

 

窗口类函数

名称 描述
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 成员,该成员包含与窗口类关联的小图标的句柄。