函数功能:该函数注册在随后调用CreateWindow函数和CreateWindowEx函数中使用的窗口类。 RegisterClass函数己经由函数RegisterClassEx函数来代替,但是,如果不需要设置类的小目标则仍然可以使用RegisterClass函数。
函数原型:ATOM RegisterClass(CONST WNDCLASS *lpWndClass);
参数:
lpWndClass:指向一个WNDCLASS结构的指针。在将它传递给函数之前,必须在该结构中填充适当的类属性。
返回值:如果函数成功,返回值是唯一标识已注册的类的一个原子;如果函数失败,返回值为0。若想获得更多错误信息,请调用GetLastError函数。
备注:如果使用RegisterClassA来注册窗口,应用程序通知系统被注册类的窗口的消息使用ANSI字符集的文本和字符参数;如果使用RegisterClassW来注册窗口,应用程序需要系统以Unicode来传递消息的文本参数。lsWindowUnicode函数使应用程序可以查询每一个窗口的字符特征。参看Win32API中的ANSI和Unicode
函数,请查阅Functiont prototype。
应用程序注册的所有的窗口类在应用程序中止后都为未注册的类。
Windows NT:所有由DLL注册的类在DLL卸载后仍为已注册的类。
函数的输入参数是一个WNDCLASSEXA 或WNDCLASSEXW 的指针。这里主要介绍
UNICODE 版本的函数定义,WNDCLASSEXW 的结构定义如下:
typedef struct tagWNDCLASSEXW {
UINT cbSize; 本结构的字节大小,一般设置为 sizeof(WNDCLASSEXW);
/* Win 3.x */
UINT style; //窗口类型
WNDPROC lpfnWndProc; //窗口处理消息的回调函数
int cbClsExtra; //窗口类型的扩展
int cbWndExtra; //窗口实例的扩展
HINSTANCE hInstance; //窗口实例句柄
HICON hIcon; //窗口图标
HCURSOR hCursor;// 窗口的光标
HBRUSH hbrBackground; //窗口背景颜色
LPCWSTR lpszMenuName; //窗口菜单名称
LPCWSTR lpszClassName; //窗口类型的名称
/* Win 4.0 */
HICON hIconSm; //窗口小图标
} WNDCLASSEXW, *PWNDCLASSEXW, NEAR *NPWNDCLASSEXW, FAR
*LPWNDCLASSEXW;