(1)函数原型
1 //RegisterClass 2 ATOM RegisterClass( 3 const WNDCLASS * lpWndClass //Long pointer to a WNDCLASS structure 4 ); 5 6 //RegisterClassEx 7 ATOM RegisterClassEx( 8 CONST WNDCLASSEX * lpwcx //Pointer to a WNDCLASSEX structure 9 );
(2)函数说明
RegisterClass()函数注册一个窗口类,RegisterClassEx()函数注册一个拓展的窗口类。如果注册成功,两个函数都会返回非零值,否则都返回0。
头文件:winuser.h
链接库:user32.lib
(3)参数说明
lpWndClass:一个指向WNDCLASS结构的长指针,在传递给函数之前,必须使用合理的类属性来填充此结构。
lpwxz:一个指向WNDCLASSEX结构的长指针,在传递给函数之前,必须使用合理的类属性来填充此结构。
(4)典型事例
1 int APIENTRY WinMain( 2 HINSTANCE hinstance, //handle of current instance 3 HINSTANCE hinstPrev, //handle of previous instance 4 LPSTR lpCmdLine, //address of command-line string 5 int nCmdShow) //show-window type 6 { 7 WNDCLASS wc; 8 9 //注册窗口类 10 wc.style = CS_HREDRAW | CS_VREDRAW; 11 wc.lpfnWndProc = (WNDCLASS)MainWndProc; 12 wc.cbClsExtra = 0; 13 wc.cbWndExtra = 0; 14 wc.hInstance = hinstance; 15 wc.hIcon = LoadIcon(NULL, IDI_APPLICATION); 16 wc.hCursor = LoadCursor(NULL, IDC_ARROW); 17 wc.hbrBackground = GetStockObject(WHITE_BRUSH); 18 wc.lpszMenuName = "MainMenu"; 19 wc.lpszClassName = "MainWindowClass"; 20 21 if(!RegisterClass(&wc)) 22 return FALSE; 23 // ... 24 // ... 25 }
当第7行使用WNDCLASSEX声明变量时,相应的21行就要用RegisterClassEx()函数注册窗口。
<参考文献>Windows API程序设计参考大全/求是科技/ISBN 7-115-14167-3