我们用Visual Studio创建一个win32项目上会自动生成一个注册窗口类。如下:
WNDCLASSEX属于一个窗台类结构原型为:
style存储表示窗口类风格的整数,它决定了该窗口的外观和内在特征。Windows以预先给了一些标准的外观,供用户选择。如下:
//
// 函数: MyRegisterClass()
//
// 目的: 注册窗口类。
//
ATOM MyRegisterClass(HINSTANCE hInstance)
{
WNDCLASSEX wcex;
wcex.cbSize = sizeof(WNDCLASSEX);
wcex.style = CS_HREDRAW | CS_VREDRAW;
wcex.lpfnWndProc = WndProc;
wcex.cbClsExtra = 0;
wcex.cbWndExtra = 0;
wcex.hInstance = hInstance;
wcex.hIcon = LoadIcon(hInstance, MAKEINTRESOURCE(IDI_WIN32PROJECT5));
wcex.hCursor = LoadCursor(NULL, IDC_ARROW);
wcex.hbrBackground = (HBRUSH)(COLOR_WINDOW+1);
wcex.lpszMenuName = MAKEINTRESOURCE(IDC_WIN32PROJECT5);
wcex.lpszClassName = szWindowClass;
wcex.hIconSm = LoadIcon(wcex.hInstance, MAKEINTRESOURCE(IDI_SMALL));
return RegisterClassEx(&wcex);
}
这些都是是什么意思呢?
WNDCLASSEX属于一个窗台类结构原型为:
typedef struct
{
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;
cbSize存储表示该结构大小的字节数,通常以sizeof(WNDCLASSEX)的形式对该域进行设置。
style存储表示窗口类风格的整数,它决定了该窗口的外观和内在特征。Windows以预先给了一些标准的外观,供用户选择。如下:
当窗口的垂直位置或窗口的高度值发生变化时,是窗口能够重新绘制其用户区域的内容
Constant/value |
Description |
CS_BYTEALIGNCLIENT 0x1000 |
在X轴方向上以某边界值对齐窗口的用户区域,该属性影响窗口的宽度和显示位置的水平坐标。 |
CS_BYTEALIGNWINDOW 0x2000 |
在X轴方向上以某个边界值对齐窗口,该属性影响窗口的宽度和显示位置的水平坐标。 |
CS_CLASSDC 0x0040 |