Microsoft Windows CE 3.0  

WNDCLASS

Important:
This is retired content. This content is outdated and is no longer being maintained. It is provided as a courtesy for individuals who are still using these technologies. This content may contain URLs that were valid when originally published, but now link to sites or pages that no longer exist.

This structure contains the window class attributes that are registered by the RegisterClassfunction.

typedef struct _WNDCLASS {
UINT
style
;
WNDPROC
lpfnWndProc
;
int
cbClsExtra
;
int
cbWndExtra
;
HANDLE
hInstance
;
HICON
hIcon
;
HCURSOR
hCursor
;
HBRUSH
hbrBackground
;
LPCTSTR
lpszMenuName
;
LPCTSTR
lpszClassName
;
}
WNDCLASS
;

Members

style
Specifies the class style(s). Styles can be combined by using the bitwise OR (|) operator. This member can be any combination of the following values:
lpfnWndProc
Long pointer to the window procedure. You must use the CallWindowProcfunction to call the window procedure. For more information, see WindowProc.
cbClsExtra
Specifies the number of extra bytes to allocate following the window-class structure. The system initializes the bytes to zero.
cbWndExtra
Specifies the number of extra bytes to allocate following the window instance. The system initializes the bytes to zero. If an application uses WNDCLASSto register a dialog box created by using the CLASSdirective in the resource file, the application must set cbWndExtraequal to the value obtained for cbWndExtrawhen the application calls the GetClassInfofunction on the system DIALOG class. This value is the number of extra bytes the OS requires for each dialog box.
hInstance
Handle to the instance that the window procedure of this class is within.
hIcon
Unsupported; set to NULL. An application must draw an icon whenever the user minimizes the application window.
hCursor
Handle to the class cursor. This member must be a handle to a cursor resource. If this member is NULL, an application must explicitly set the cursor shape whenever the mouse moves into the application's window.
hbrBackground
Handle to the class background brush. This member can be a handle to the physical brush to be used for painting the background, or it can be a color value. A color value must be one of the following standard system colors (the value 1 must be added to the chosen color). If a color value is given, you must convert it to one of the following HBRUSHtypes:
Value Description
CS_DBLCLKS Sends double-click messages to the window procedure when the user double-clicks the mouse while the cursor is within a window belonging to the class.
CS_GLOBALCLASS Allows an application to create a window of the class regardless of the value of the hInstanceparameter passed to the CreateWindowor CreateWindowExfunction. If you do not specify this style, the hInstancemember passed to the CreateWindow(or CreateWindowEx) function must be the same as the hInstancemember passed to the RegisterClassfunction.

You can create a global class by creating the window class in a dynamic-link library (DLL) and listing the name of the DLL in the registry under the following keys:

HKEY_LOCAL_MACHINE\Software
\Microsoft\Windows NT\
CurrentVersion\Windows\AppInit_DLLs

Whenever a process starts, the system loads the specified DLLs in the context of the newly started process before calling the entry-point function in that process. The DLL must register the class during its initialization procedure and must specify the CS_GLOBALCLASS style.

CS_HREDRAW Redraws the entire window if a movement or size adjustment changes the width of the client area.
CS_NOCLOSE Disables Closeon the windowmenu.
CS_PARENTDC Sets the clipping region of the child window to that of the parent window so that the child can draw on the parent. A window with the CS_PARENTDC style bit receives a regular device context from the system's cache of device contexts. It does not give the child the parent's device context or device context settings. Specifying CS_PARENTDC enhances an application's performance.
CS_VREDRAW Redraws the entire window if a movement or size adjustment changes the height of the client area.
COLOR_ACTIVEBORDER COLOR_HIGHLIGHTTEXT
COLOR_ACTIVECAPTION COLOR_INACTIVEBORDER
COLOR_APPWORKSPACE COLOR_INACTIVECAPTION
COLOR_BACKGROUND COLOR_MENU
COLOR_BTNFACE COLOR_MENUTEXT
COLOR_BTNSHADOW COLOR_SCROLLBAR
COLOR_BTNTEXT COLOR_WINDOW
COLOR_CAPTIONTEXT COLOR_WINDOWFRAME
COLOR_GRAYTEXT COLOR_WINDOWTEXT
COLOR_HIGHLIGHT  

The system automatically deletes class background brushes when the class is freed. An application should not delete these brushes, because a class may be used by multiple instances of an application.

When this member is NULL, an application must paint its own background whenever it is requested to paint in its client area. To determine whether the background must be painted, an application can either process the WM_ERASEBKGND message or test the fErasemember of the PAINTSTRUCTstructure filled by the BeginPaintfunction.

lpszMenuName
Long pointer to a null-terminated character string that specifies the resource name of the class menu, as the name appears in the resource file. If you use an integer to identify the menu, use the MAKEINTRESOURCEmacro. If this member is NULL, windows belonging to this class have no default menu.
lpszClassName
Either a long pointer to a null-terminated string or an atom. If this member is an atom, it must be a global atom created by a previous call to the GlobalAddAtomfunction. The atom, a 16-bit value, must be in the low-order word of lpszClassName; the high-order word must be zero.

If lpszClassNameis a string, it specifies the window class name.

Remarks

The following members are restricted.

  • cbClsExtramust be a multiple of four.
  • cbWndExtramust be a multiple of four.
  • Unless you're using the Windows CE Iconcurs component, which supports mouse cursors on appropriate target platforms, the hCursormember must be set to NULL.
  • lpszMenuNameis not supported and must be NULL.
  • lpszClassNamemust be a string. Atoms are not supported.
  • In Windows CE 1.0, the stylemember can only be the CS_DBLCLKS value.
  • In Windows CE versions 2.0 and later, the stylemember can be the following values:
    • CS_DBLCLKS
    • CS_GLOBALCLASS
    • CS_HREDRAW
    • CS_IME
    • CS_NOCLOSE
    • CS_PARENTDC
    • CS_VREDRAW

      In Windows CE, all window classes are process global. The CS_GLOBALCLASS value is included to provide source level compatibility with applications that are also compiled under other versions of Windows.

      Note   The technique of putting a class name and DLL in the registry and having a DLL automatically loaded is not supported.

      Requirements

      Runs on Versions Defined in Include Link to
      Windows CE OS 1.0 and later Winuser.h    
      Note   This API is part of the complete Windows CE OS package as provided by Microsoft. The functionality of a particular platform is determined by the original equipment manufacturer (OEM) and some devices may not support this API.

      See Also

      BeginPaint, CallWindowProc, CreateWindow, CreateWindowEx, GetDC, GetClassInfo, PAINTSTRUCT, RegisterClass, WindowProc, WM_PAINT, MAKEINTRESOURCE,