AfxRegisterWndClass

可以注册自己的窗口类。

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

参数

  • nClassStyle
    指定窗口在样式类的样式或组合,创建使用了按位或 (|) 运算符,窗口类。 有关类样式列表,请参阅《Windows SDK的 WNDCLASS 结构。 如果 NULL,默认设置如下:

    • 设置鼠标样式为 CS_DBLCLKS,路由信息。双击窗口过程,当用户双击鼠标时。

    • 设置箭头光标样式。Windows 标准 IDC_ARROW

    • 设置背景画笔为 NULL,因此窗口,不会清除其背景。

    • 设置图标到标准,Windows 徽标波浪标志图标。

  • hCursor
    指定处理于各 Windows 的安装光标资源创建一个窗口类。 如果使用 0IDC_ARROW 默认将获取标准光标。

  • hbrBackground
    指定处理于各 Windows 的安装光标资源创建一个窗口类。 如果使用 0默认,您将具有一 NULL 背景画笔,并且,窗口,在默认情况下,其背景不会清除,在处理时。WM_ERASEBKGND

  • hIcon
    指定处理于各 Windows 的安装光标资源创建一个窗口类。 如果使用 0默认,您将获取标准标志,波浪形 Windows 徽标的图标。

返回值

包含类名称的非终止字符串。 可以将此类命名为 CWnd 或其他 CWnd-派生的类的 创建 成员函数来创建的窗口。 名称由 Microsoft 基础类库生成的。

备注

返回值为指针到静态缓冲区。若要保存此字符串,请将其分配到 CString 变量。

备注

Microsoft 基础类 (MFC) 库自动注册您的若干标准窗口类。 调用此函数。要注册自己的窗口类。

用于注册类的名称由 AfxRegisterWndClass 仅取决于参数。 如果调用 AfxRegisterWndClass 具有相同参数的多次,它将只注册在首次调用的类。 对 AfxRegisterWndClass 的后续调用都使用相同的参数返回已注册的 classname。

如果调用 CWnd 多个派生的 AfxRegisterWndClass 类用相同的参数,而不是获得每类的单独窗口类,每个类共享同一窗口类。 如果使用,这会导致问题 CS_CLASSDC 类样式。 作为替代使用多个 CS_CLASSDC 窗口类,您最终获取 CS_CLASSDC 窗口类和使用该类共享相同的 DC 的所有 C++ Windows。 避免此问题,调用 AfxRegisterClass 注册类。

请参见技术声明 TN001:窗口类注册 有关 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();
}

要求

标头: afxwin.h

请参见

参考

CWnd::Create

CWnd::PreCreateWindow

WNDCLASS

AfxRegisterClass

概念

MFC 宏和全局函数