Type a page name and press Enter. You'll jump to the page if it exists, or you can create it if it doesn't.
To create a page in a module other than Structures, prefix the name with the module name and a period.
WNDCLASSEX (Structures)
.
C# Definition:
[StructLayout(LayoutKind.Sequential, CharSet = CharSet.Auto)]
public struct WNDCLASSEX
{
[MarshalAs(UnmanagedType.U4)]
public int cbSize;
[MarshalAs(UnmanagedType.U4)]
public int style;
public IntPtr lpfnWndProc; // not WndProc
public int cbClsExtra;
public int cbWndExtra;
public IntPtr hInstance;
public IntPtr hIcon;
public IntPtr hCursor;
public IntPtr hbrBackground;
public string lpszMenuName;
public string lpszClassName;
public IntPtr hIconSm;
//Use this function to make a new one with cbSize already filled in.
//For example:
//var WndClss = WNDCLASSEX.Build()
public static WNDCLASSEX Build()
{
var nw = new WNDCLASSEX();
nw.cbSize = Marshal.SizeOf(typeof (WNDCLASSEX));
return nw;
}
}
[MarshalAs(UnmanagedType.U4)]
public int cbSize;
[MarshalAs(UnmanagedType.U4)]
public int style;
public IntPtr lpfnWndProc; // not WndProc
public int cbClsExtra;
public int cbWndExtra;
public IntPtr hInstance;
public IntPtr hIcon;
public IntPtr hCursor;
public IntPtr hbrBackground;
public string lpszMenuName;
public string lpszClassName;
public IntPtr hIconSm;
}
VB Definition:
<StructLayout(LayoutKind.Sequential)> _
Structure WNDCLASSEX
Public cbSize As UInteger
Public style As ClassStyles
<MarshalAs(UnmanagedType.FunctionPtr)>
Public lpfnWndProc As IntPtr
Public cbClsExtra As Integer
Public cbWndExtra As Integer
Public hInstance As IntPtr
Public hIcon As IntPtr
Public hCursor As IntPtr
Public hbrBackground As IntPtr
Public lpszMenuName As String
Public lpszClassName As String
Public hIconSm As IntPtr
' Use this function to make a new one with cbSize already filled in.
' For example:
'Dim WndClss As WNDCLASSEX = WNDCLASSEX.GetNew()
Shared Function MakeNew()
Dim nw as New WNDCLASSEX
nw.cbSize=Marshal.SizeOf(GetType(WNDCLASSEX))
return nw
End Function
End Structure
IMPORTANT:
The two strings were previously defined at pinvoke.net as:
<MarshalAs(UnmanagedType.LPTStr)> _
Public lpszMenuName As String
<MarshalAs(UnmanagedType.LPTStr)> _
Public lpszClassName As String
The MarshalAs attributes cause class registration to fail. They have been removed.
Specifies the size, in bytes, of this structure. Set this member to sizeof(WNDCLASSEX). Be sure to set this member before calling the GetClassInfoEx function.
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 WNDCLASSEX 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.
hIconSm
Handle to a small icon that is associated with the window class. If this member is NULL, the system searches the icon resource specified by the hIcon member for an icon of the appropriate size to use as the small icon.
The RegisterClassEx API registers a new window class to be created using CreateWindow or CreateWindowEx.
8/15/2020 5:17:33 AM - Drarig29-93.23.131.77
The GetClassInfoEx API
1/27/2020 7:28:20 AM - -64.180.49.185
The '''WNDCLASSEX''' structure contains window class information. It is used with the RegisterClassEx and GetClassInfoEx functions. The '''WNDCLASSEX''' structure is similar to the Structures.[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.
6/5/2016 9:19:43 AM - jnm2-74.212.46.188
TODO - a short description
3/16/2007 8:17:31 AM - -63.69.129.2
Click to read this page
4/6/2008 7:23:14 AM - anonymous
Click to read this page
4/6/2008 7:23:14 AM - anonymous
A delegate for window procedure callbacks (handlers).
7/31/2009 12:04:10 PM - -92.224.233.194
Window class styles used with Structures.[WNDCLASS] and [WNDCLASSEX].
9/12/2010 4:48:12 AM - jnm2-74.212.46.188
Window class styles used with Structures.[WNDCLASS] and [WNDCLASSEX].
9/12/2010 4:48:12 AM - jnm2-74.212.46.188
The CallWindowProc API
11/23/2012 7:05:10 PM - -67.128.30.210
A delegate for window procedure callbacks (handlers).
7/31/2009 12:04:10 PM - -92.224.233.194
TODO - a short description
8/2/2018 2:46:21 AM - -37.201.242.110
Contains information that can be used to paint the client area of a window.
3/16/2007 8:18:39 AM - -212.72.208.162
The BeginPaint API
8/24/2011 3:40:03 AM - -66.6.114.140
The RegisterClassEx API registers a new window class to be created using CreateWindow or CreateWindowEx.
9/20/2015 5:34:39 AM - anonymous
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.