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

请参见

参考

CWnd::Create

CWnd::PreCreateWindow

WNDCLASS

AfxRegisterClass

概念

MFC宏和Globals