概论
应用程序在创建某个类型的窗口前,必须首先注册该“窗口类”(Windows Class),但
注意不是C++类的类,而是一种数据结构,Windows系统的类型定义,而Windows窗口则是相应“窗口类”的实例
。Register Window把窗口过程、窗口类型以及其他类型信息和要登记的窗口类关联起来。
定义
typedef struct _WNDCLASSEX {
UINT cbSize; //该结构的字节数
UINT style; //窗口类的风格
WNDPROC lpfnWndProc; //窗口过程
int cbClsExtra;
int cbWndExtra;
HANDLE hInstance; //该窗口类的窗口过程所属的应用实例
HICON hIcon; //该窗口类所用的像标
HCURSOR hCursor; //该窗口类所用的光标
HBRUSH hbrBackground; //该窗口类所用的背景刷
LPCTSTR lpszMenuName; //该窗口类所用的菜单资源
LPCTSTR lpszClassName; //该窗口类的名称
HICON hIconSm; //该窗口类所用的小像标
} WNDCLASSEX;
由“窗口类”的定义看出,其包含了一个窗口的重要信息,如窗口风格、窗口过程、显示和绘制窗口所需要的信息等等。Windows系统在初始化时,会注册(Register)一些全局的“窗口类”,例如通用控制窗口类。应用程序在创建自己的窗口时,首先必须注册自己的窗口类。