Search
Module:
Directory

   Desktop Functions:

   Smart Device Functions:


Show Recent Changes
Subscribe (RSS)
Misc. Pages
Comments
FAQ
Helpful Tools
Playground
Suggested Reading
Website TODO List
Download Visual Studio Add-In

WNDCLASS (Structures)
 
.
Summary
The WNDCLASS structure 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.

C# Definition:

[StructLayout(LayoutKind.Sequential)]
struct WNDCLASS {
   public uint style;
   [MarshalAs(UnmanagedType.FunctionPtr)]
   public WndProc lpfnWndProc;
   public int cbClsExtra;
   public int cbWndExtra;
   public IntPtr hInstance;
   public IntPtr hIcon;
   public IntPtr hCursor;
   public IntPtr hbrBackground;
   [MarshalAs(UnmanagedType.LPTStr)]
   public string lpszMenuName;
   [MarshalAs(UnmanagedType.LPTStr)]
   public string lpszClassName;
}

User-Defined Field Types:

None.

Notes:

  • style
    • Specifies the class style(s). This member can be any combination of the ClassStyles.
  • lpfnWndProc
    • Pointer to the window procedure. You must use the CallWindowProc function to call the window procedure. For more information, see WndProc.
  • 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, it must set this member to DLGWINDOWEXTRA.
  • hInstance
    • Handle to the instance that contains the window procedure for the class.
  • hIcon
    • Handle to the class icon. This member must be a handle to an icon resource. If this member is NULL, the system provides a default icon.
  • 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_ACTIVECAPTION
      • COLOR_APPWORKSPACE
      • COLOR_BACKGROUND
      • COLOR_BTNFACE
      • COLOR_BTNSHADOW
      • COLOR_BTNTEXT
      • COLOR_CAPTIONTEXT
      • COLOR_GRAYTEXT
      • COLOR_HIGHLIGHT
      • COLOR_HIGHLIGHTTEXT
      • COLOR_INACTIVEBORDER
      • COLOR_INACTIVECAPTION
      • COLOR_MENU
      • COLOR_MENUTEXT
      • COLOR_SCROLLBAR
      • COLOR_WINDOW
      • COLOR_WINDOWFRAME
      • COLOR_WINDOWTEXT
    • The system automatically deletes class background brushes when the class is unregistered by using UnregisterClass. An application should not delete these brushes.
    • 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
    • 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
    • Pointer to a null-terminated string or is an atom. If this parameter is an atom, it must be a class atom created by a previous call to the RegisterClass or RegisterClassEx function. The atom 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. The class name can be any name registered with RegisterClass or RegisterClassEx, or any of the predefined control-class names.
    • The maximum length for lpszClassName is 256.
Documentation
WNDCLASS on MSDN

Please edit this page!

Do you have...

  • helpful tips?
  • corrections to the existing content?
  • alternate definitions?
  • additional languages you want to include?

Select "Edit This Page" on the right hand toolbar and edit it! Or add new pages containing any supporting types needed.

 
Access PInvoke.net directly from VS:
Terms of Use
Find References
Show Printable Version
Revisions