// // 函数: 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); }这些都是是什么意思呢?
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)的形式对该域进行设置。
当窗口的垂直位置或窗口的高度值发生变化时,是窗口能够重新绘制其用户区域的内容
Constant/value |
Description |
CS_BYTEALIGNCLIENT 0x1000 <wbr></wbr> |
在X轴方向上以某边界值对齐窗口的用户区域,该属性影响窗口的宽度和显示位置的水平坐标。 |
CS_BYTEALIGNWINDOW 0x2000 <wbr></wbr> |
在X轴方向上以某个边界值对齐窗口,该属性影响窗口的宽度和显示位置的水平坐标。 |
CS_CLASSDC 0x0040 |
为窗口分配一个该类的所有窗口都共享的设备描述表。由于窗口类是进程指定的,一个应用中的多个线程就可能创建属于同一个窗口了的窗口,这些线程也就可以尝试同时使用设备描述表,但此时,系统只允许一个线程成功完成其图形输出。 |
CS_DBLCLKS 0x0008 |
用户在属于该窗口类的窗口中双击鼠标时将鼠标双击消息发送到窗口处理函数。打开该函数才支持鼠标双击功能。 |
CS_DROPSHADOW 0x00020000 |
Windows XP 中允许窗口的拖拉阴影效果。通过SPI_SETDROPSHADOW打开或关闭该功能。 |
CS_GLOBALCLASS 0x4000 |
将窗口类指定为一个应用全局类,所谓的应用全局类就是在exe或dll中定义的窗口类,加载该exe或dll的进程都可以创建属于该窗口类的窗口。 |
CS_HREDRAW 0x0002 |
当窗口的水平位置或窗口的宽度值发生变化时,是窗口能够重新绘制其用户区域的内容 |
CS_NOCLOSE 0x0200 |
不能使用窗口菜单中的“关闭”功能 |
CS_OWNDC 0x0020 |
为该类的每个窗口分配独立的设备描述表。 |
CS_PARENTDC 0x0080 |
允许子窗体使用父窗体的设备描述表。 |
CS_SAVEBITS 0x0800 <wbr></wbr> |
当窗口中部分内容被遮挡时,自动保存图像,当被遮挡的区域恢复时,使用自动保存的图形来进行自动恢复。 |
CS_VREDRAW 0x0001 |
光标宏 | 形状 |
IDC_ARROW | 标准箭头 |
IDC_CROSS | 十字线 |
IDC_HAND | 手 |
IDC_WAIT | 沙漏 |
IDC_SIZENS | 上下双箭头 |
IDC_SIZEWE | 左右双箭头 |
IDC_SIZEALL | 四个方向箭头 |
IDC_HELP | 箭头和问好 |
IDC_IBEAM | 垂直I字形 |
IDC_SIZENESW | 右下角和左上角算箭头 |
IDC_SIZENWSE | 左上角和右下角算箭头 |
·<wbr><wbr></wbr></wbr>COLOR_ACTIVEBORDER
·<wbr><wbr></wbr></wbr>COLOR_ACTIVECAPTION
·<wbr><wbr></wbr></wbr>COLOR_APPWORKSPACE
·<wbr><wbr></wbr></wbr>COLOR_BACKGROUND
·<wbr><wbr></wbr></wbr>COLOR_BTNFACE
·<wbr><wbr></wbr></wbr>COLOR_BTNSHADOW
·<wbr><wbr></wbr></wbr>COLOR_BTNTEXT
·<wbr><wbr></wbr></wbr>COLOR_CAPTIONTEXT
·<wbr><wbr></wbr></wbr>COLOR_GRAYTEXT
·<wbr><wbr></wbr></wbr>COLOR_HIGHLIGHT
·<wbr><wbr></wbr></wbr>COLOR_HIGHLIGHTTEXT
·<wbr><wbr></wbr></wbr>COLOR_INACTIVEBORDER
·<wbr><wbr></wbr></wbr>COLOR_INACTIVECAPTION
·<wbr><wbr></wbr></wbr>COLOR_MENU
·<wbr><wbr></wbr></wbr>COLOR_MENUTEXT
·<wbr><wbr></wbr></wbr>COLOR_SCROLLBAR
·<wbr><wbr></wbr></wbr>COLOR_WINDOW
·<wbr><wbr></wbr></wbr>COLOR_WINDOWFRAME
·<wbr><wbr></wbr></wbr>COLOR_WINDOWTEXT
lpszMenuName存储以空结尾的指定类菜单资源名的字符串指针,类菜单资源名已经在资源文件中进行了定义。