AfxRegisterWndClass

LPCTSTR AFXAPI AfxRegisterWndClass(
        UINT nClassStyle,
        HCURSOR hCursor = 0,
        HBRUSH hbrBackground = 0,
        HICON hIcon = 0
       );

返回值:
一个以null结尾的字符串,其中包含了类名。你可以将这个类名传递给CWnd或其派生类的成员函数Create以创建一个窗口。这个名字是由微软基础类库生成的。
注意:
返回值是指向一个静态缓冲区的指针。如果要保存这个字符串,将它赋给一个CString变量。

参数:
nClassStyle指定Windows的类风格或通过位或(|)操作符生成的风格的组合,用于窗口类类风格的列表参见Win32 SDK文档中的WNDCLASS结构。如果这个值为NULL,缺省的风格如下:
·将鼠标风格设为CS_DBLCLICKS,当用户双击鼠标时,将向窗口过程发送双击消息。
·将鼠标光标风格设为Windows 的标准风格IDC_ARROW。
·将背景刷子设为NULL,因此窗口将不会擦去它的背景。
·将图标设为标准的波浪标志的Windows徽标。
hCursor指定了一个鼠标光标资源句柄,将被用于该窗口类所创建的每个窗口。如果你使用缺省值0,你将得到标准的IDC_ARROW光标。
hbrBackground指定了一个刷子资源句柄,将被用于该窗口类所创建的每个窗口。如果你使用缺省值0,你将获得一个Null背景刷子,同时在WM_ERASEBKGND进程中,窗口将不会释放其背景。
hIcon指定了一个图标资源句柄,将被用于该窗口类所创建的每个窗口。如果你使用缺省值0,你将得到标准的波浪标志的Windows徽标。

说明:
微软基础类库自动注册了一些标准的窗口类。如果你希望注册自己的窗口类,可以调用这个函数。
AfxRegisterWndClass为类注册的名字仅与参数有关。如果你用相同的参数多次调用了AfxRegisterWndClass,它仅在第一次调用时才注册类。随后用相同的参数进行调用仅简单地返回以及注册的类名。
如果你用相同的参数为多个CWnd的派生类调用了AfxRegisterWndClass,而不是为每个类生成一个独立的窗口类,那么所有的类共用相同的窗口类。如果使用了CS_CLASSDC风格,这就会引起问题。你将获得一个CS_CLASSDC窗口类,而不是多个CS_CLASSDC窗口类,并且使用这个类的所有的C++窗口都共用相同的DC。为了避免这个问题,可以调用AfxRegisterClass来注册类。

请参阅:
CWnd::Create, CWnd::PreCreateWindow, WNDCLASS, AfxRegisterClass