RegisterClass/RegisterClassEx -- 注册窗口类

(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

知识是最好的情人,她永远不会嫌弃你!
原文地址:https://www.cnblogs.com/Joseph-AMI/p/3515196.html