Window Classes (Windows and Messages)

This topic describes the types of window classes, how the system locates them, and the elements that define the default behavior of windows that belong to them.

A window class is a set of attributes that the system uses as a template to create a window. Every window is a member of a window class. All window classes are process specific.

In This Section

Name Description
About Window Classes Discusses window classes. Each window class has an associated window procedure shared by all windows of the same class. The window procedure processes messages for all windows of that class and therefore controls their behavior and appearance.
Using Window Classes Demonstrates how to register a local window and use it to create a main window.
Window Class Reference Contains the API reference.

 

Window Class Functions

Name Description
GetClassInfoEx Retrieves information about a window class, including a handle to the small icon associated with the window class. The GetClassInfo function does not retrieve a handle to the small icon.
GetClassLong Retrieves the specified 32-bit (long) value from the WNDCLASSEX structure associated with the specified window.
GetClassLongPtr Retrieves the specified value from the WNDCLASSEX structure associated with the specified window.
GetClassName Retrieves the name of the class to which the specified window belongs.
GetWindowLong Retrieves information about the specified window. The function also retrieves the 32-bit (long) value at the specified offset into the extra window memory.
GetWindowLongPtr Retrieves information about the specified window. The function also retrieves the value at a specified offset into the extra window memory.
RegisterClass Registers a window class for subsequent use in calls to the CreateWindow or CreateWindowEx function.
RegisterClassEx Registers a window class for subsequent use in calls to the CreateWindow or CreateWindowEx function.
SetClassLongPtr Replaces the specified value at the specified offset in the extra class memory or the WNDCLASSEX structure for the class to which the specified window belongs.
SetClassWord Replaces the 16-bit (WORD) value at the specified offset into the extra class memory for the window class to which the specified window belongs.
SetWindowLong Changes an attribute of the specified window. The function also sets the 32-bit (long) value at the specified offset into the extra window memory.
SetWindowLongPtr Changes an attribute of the specified window. The function also sets a value at the specified offset in the extra window memory.
UnregisterClass Unregisters a window class, freeing the memory required for the class.

 

The following functions are obsolete.

Name Description
GetClassInfo Retrieves information about a window class.
Note: The GetClassInfo function has been superseded by the GetClassInfoEx function. You can still use GetClassInfo, however, if you do not need information about the class small icon.
GetClassWord Retrieves the 16-bit (WORD) value at the specified offset into the extra class memory for the window class to which the specified window belongs. Note: This function is deprecated for any use other than nIndex set to GCW_ATOM. The function is provided only for compatibility with 16-bit versions of Windows. Applications should use the GetClassLong function.
SetClassLong Replaces the specified 32-bit (long) value at the specified offset into the extra class memory or the WNDCLASSEX structure for the class to which the specified window belongs. Note: This function has been superseded by the SetClassLongPtr function. To write code that is compatible with both 32-bit and 64-bit versions of Windows, use SetClassLongPtr.

 

Window Class Structures

Name Description
WNDCLASS Contains the window class attributes that are registered by the RegisterClass function.
This structure has been superseded by the WNDCLASSEX structure used with the RegisterClassEx function. You can still use WNDCLASS and RegisterClass if you do not need to set the small icon associated with the window class.
WNDCLASSEX Contains window class information. It is used with the RegisterClassEx and GetClassInfoEx  functions.
The WNDCLASSEX structure is similar to the WNDCLASS structure. There are two differences. WNDCLASSEX includes the cbSize member, which specifies the size of the structure, and the hIconSm member, which contains a handle to a small icon associated with the window class.