used with the RegisterClassEx and GetClassInfoEx functions.
//WNDCLASSEX结构包含了window 类信息。 它被RegisterClassEx 和
GetClassInfoEx函数所使用。
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.
//WNDCLASSEX结构和WNDCLASS结构类似,有两个不同。WNDCLASSEX包含了cbsize数,
它指定了结构的大小,和hIconSm数,它包含了窗口类的小图标句柄。
typedef struct _WNDCLASS {
UINT style;
WNDPROC lpfnWndProc;
int cbClsExtra;
int cbWndExtra;
HINSTANCE hInstance;
HICON hIcon;
HCURSOR hCursor;
HBRUSH hbrBackground;
LPCTSTR lpszMenuName;
LPCTSTR lpszClassName;
} WNDCLASS, *PWNDCLASS;
typedef struct _WNDCLASSEX {
UINT cbSize;
UINT style;
WNDPROC lpfnWndProc;
int cbClsExtra;
int cbWndExtra;
HINSTANCE hInstance;
HICON hIcon;
HCURSOR hCursor;
HBRUSH hbrBackground;
LPCTSTR lpszMenuName;
LPCTSTR lpszClassName;
HICON hIconSm;
} WNDCLASSEX, *PWNDCLASSEX;
Members
cbSize
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.
//cbSize这个结构定义了大小,它的单位是字节。这个数就是sizeof(WNDCLASSEX)。在
调用GetClassInforEx功能之前来确定这个数。
style
Specifies the class style(s). This member can be any combination
of the Class Styles.
//style指定了类类型。这个数可以是类类型的任意组合
lpfnWndProc
Pointer to the window procedure. You must use the CallWindowProc
function to call the window procedure. For more information, see
WindowProc.
//指向窗口程序。你必须使用CallWindowProc功能来调用窗口过程。
cbClsExtra
Specifies the number of extra bytes to allocate following the
window-class structure. The system initializes the bytes to zero.
//指定了额外的字节,来分配给窗口类结构。系统初始化为0。
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.
//指定了额外分配的字节数,来适应窗口实例。系统初始化为0。如果一个应用程序使用
WNDCLASSEX来注册一个对话框,那么它必须被设置为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.
//处理类按钮。这个成员必须是一个按钮资源的句柄。如果这个成员是NULL,那么系统提供
一个默认的按钮。
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:
//处理背景刷类。这个成员可以是一个物理的背景刷的句柄,或者它是一个颜色值。颜色值一
定是标准系统颜色中的一种(数值1必须被加到所选择的颜色中)。如果得到了一个颜色值,
你必须把它转化为以下的HBRUSH类型的一种:
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.
//处理和窗口类相关联的一个小图标。如果这个成员是空,系统会搜索其它的ICON