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 的安装光标资源创建一个窗口类。 如果使用 0,IDC_ARROW 默认将获取标准光标。hbrBackground
指定处理于各 Windows 的安装光标资源创建一个窗口类。 如果使用 0默认,您将具有一 NULL 背景画笔,并且,窗口,在默认情况下,其背景不会清除,在处理时。WM_ERASEBKGNDhIcon
指定处理于各 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