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