AfxRegisterWndClass
使您可以注册您的窗口类。
LPCTSTR AFXAPI AfxRegisterWndClass(
UINT nClassStyle,
HCURSOR hCursor = 0,
HBRUSH hbrBackground = 0,
HICON hIcon = 0
);
参数
nClassStyle
指定样式的窗口类样式或组合,创建使用按位或 (|) 运算符,窗口类的。有关类样式列表,请参见。 Windows SDK的 WNDCLASS 结构。如果 NULL,默认设置如下所示:设置鼠标样式的 CS_DBLCLKS,双击信息发送到 windows 程序中,当用户双击鼠标时。
设置箭头光标样式的 windows 标准 IDC_ARROW。
设置背景画笔为 NULL,因此,窗口不会清除其背景。
设置图标对该条件,挥动标志 windows 徽标图标。
hCursor
指定句柄在每个窗口上安装光标资源创建从窗口类。如果使用 0默认值,您将收到标准 IDC_ARROW 光标。hbrBackground
指定句柄在每个窗口上安装画笔资源创建从窗口类。如果使用 0默认值,您将具有一个 NULL 背景画笔,并且,如果您的窗口中,默认情况下,不会清除其背景,在处理 WM_ERASEBKGND时。hIcon
指定句柄在每个窗口上安装图标资源创建从窗口类。如果使用 0默认值,您将收到该条件,挥动标志 windows 徽标图标。
返回值
包含类名称的一个 NULL 终止的字符串。可以将该类命名为在 CWnd 或其他 CWnd-派生类的 创建 成员函数创建一个窗口。名称由 Microsoft 基础类库生成的。
说明 |
---|
返回值是指向静态缓冲区。若要保存对此字符串,请将其分配给 CString 变量。 |
备注
多个 Microsoft 基础类库的注册标准 windows 为您自动类别。,如果需要注册窗口类,请调用此函数。
类注册的名称由 AfxRegisterWndClass 仅取决于参数。如果调用 AfxRegisterWndClass 具有相同的参数的多次,它在的类第一次调用只注册。对的后续调用具有相同的参数的 AfxRegisterWndClass 返回已注册的 classname。
如果调用 CWnd 派生的多线程的 AfxRegisterWndClass 类具有相同的参数,而不是获取每个类的单独窗口类,每个类都共享相同的窗口类。,如果使用,则可能会出现问题 CS_CLASSDC 类样式。而不是多个 CS_CLASSDC 窗口类,则最终获取一 CS_CLASSDC 窗口类和使用该类共享相同的 DC 的所有 C++ 窗口。若要避免此问题,请调用 AfxRegisterClass 注册类。
请参见技术说明 TN001:windows选件类注册 有关 windows 类注册和 AfxRegisterWndClass 功能的更多信息。
示例
CString strMyClass;
// load stock cursor, brush, and icon for
// my own window class
try
{
strMyClass = AfxRegisterWndClass(
CS_VREDRAW | CS_HREDRAW,
::LoadCursor(NULL, IDC_ARROW),
(HBRUSH) ::GetStockObject(WHITE_BRUSH),
::LoadIcon(NULL, IDI_APPLICATION));
}
catch (CResourceException* pEx)
{
AfxMessageBox(_T("Couldn't register class! (Already registered?)"));
pEx->Delete();
}
要求
Header: afxwin.h