WNDCLASS

A version of this page is also available for

Windows Embedded CE 6.0 R3

4/8/2010

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

Syntax

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.

    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_HREDRAW

    Redraws the entire window if a movement or size adjustment changes the width of the client area.

    CS_NOCLOSE

    Disables Close on the window menu.

    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.

  • lpfnWndProc
    Long pointer to the window procedure. You must use the CallWindowProc function 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 WNDCLASS to register a dialog box created by using the CLASS directive in the resource file, the application must set cbWndExtra equal to the value obtained for cbWndExtra when the application calls the GetClassInfo function 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 HBRUSH types:

    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 fErase member of the PAINTSTRUCT structure filled by the BeginPaint function.

  • 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 MAKEINTRESOURCE macro. 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 GlobalAddAtom function. The atom, a 16-bit value, must be in the low-order word of lpszClassName; the high-order word must be zero.

    If lpszClassName is a string, it specifies the window class name.

Remarks

The following members are restricted.

  • cbClsExtra must be a multiple of four.
  • cbWndExtra must be a multiple of four.
  • Unless you are using the Windows Embedded CE Iconcurs component, which supports mouse cursors on appropriate target platforms, the hCursor member must be set to NULL.
  • lpszMenuName is not supported and must be NULL.
  • lpszClassName must be a string. Atoms are not supported.
  • In Windows CE 1.0, the style member can only be the CS_DBLCLKS value.
  • In Windows CE 2.0 and later, the style member can be the following values:
    • CS_DBLCLKS
    • CS_HREDRAW
    • CS_IME
    • CS_NOCLOSE
    • CS_PARENTDC
    • CS_VREDRAW

In Windows Embedded CE, all window classes are process global.

Note

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

Requirements

Header winuser.h
Windows Embedded CE Windows CE 1.0 and later
Windows Mobile Windows Mobile Version 5.0 and later

See Also

Reference

Window Class Structures
BeginPaint
CallWindowProc
CreateWindow
CreateWindowEx
GetDC
GetClassInfo
PAINTSTRUCT
RegisterClass
WindowProc
WM_PAINT
MAKEINTRESOURCE