1.窗口类
窗口类包含了窗口的各种参数信息的数据结构。每个窗口都具有窗口类,基于窗口类创建窗口。每个窗口类都具有一个名称,使用之前必须注册到系统。
2.窗口类的分类
1)系统窗口类
系统已经定义好的窗口类,所有应用程序都可以直接使用。
2)应用程序全局窗口类
由用户自己定义,当前应用程序所有模块都可以使用。
3)应用程序局部窗口类
由用户自己定义,当前应用程序中本模块可以使用。
3. 系统窗口类
注册窗口类的步骤必须要做,但是系统窗口类不需要(程序员)注册,直接使用窗口类即可。系统已经定义好的相应名称,例如:
按钮 - BUTTON
编辑框 - EDIT
相关代码:
#include "stdafx.h" HINSTANCE g_hInstance = 0; void SysReg() { HWND hWnd = CreateWindow((LPCSTR)"BUTTON", (LPCSTR)"OK", WS_OVERLAPPEDWINDOW, 100, 100, 500, 500, NULL, NULL, NULL, NULL); ShowWindow(hWnd,SW_SHOW); UpdateWindow(hWnd); MSG uMsg = { 0 }; while (GetMessage(&uMsg, NULL, 0, 0)) { TranslateMessage(&uMsg); DispatchMessage(&uMsg); } } int APIENTRY WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int cCmdShow) { g_hInstance = hInstance; SysReg(); return 0; }
运行结果:
4.应用程序全局窗口类
应用程序全局穿够累的注册,需要在窗口类的风格中增加CS_GLOBALCLASS,例如:
WNDCLASSEX wce = {0};
wce.style = ... | CS_GLOBALCLASS;
5.应用程序局部窗口类,在注册窗口类时,不添加CS_GLOBALCLASS风格。