注意 Microsoft Visual c + +.net 2002年和 Microsoft Visual c + +.net 2003年支持托管的代码模型所提供的 Microsoft.net 框架和非托管本机 Windows 代码模型。本文中的信息仅适用于非托管的 Visual c + + 代码。Microsoft Visual c + + 2005年支持托管的代码模型所提供的 Microsoft.net 框架和非托管本机 Windows 代码模型。
概要
更多信息
若要提供您自己的窗口类名,请执行以下步骤:
- 打开包含对话框中,您项目的工作空间,然后单击ResourceView
- 在资源编辑器中打开对话框。用鼠标右键单击对话框,然后选择属性。注意到为类名在右下角的一个条目。如果您正在使用 Microsoft 基础类库支持的资源文件,则该编辑框被禁用。要启用此选项,请切换到顶级节点上的资源视图中,然后右键单击并选择属性。清除启用 MFC 功能复选框。或为使 Visual C++.NET,清除MFC 模式属性设置为 FALSE。现在显示的对话框中的属性。应启用类名称编辑框。键入类的名称 ;例如 MyPrivateClassName。
- 另外,作为文本文件打开.rc 文件。转到所需的对话框资源,并添加类选项。
IDD_LIMITDLGINSTANCE_DIALOG DIALOGEX 0, 0, 195, 44 STYLE DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU EXSTYLE WS_EX_APPWINDOW CAPTION "LimitDlgInstance" CLASS "MyPrivateClassName" // Add your class name here! FONT 8, "MS Sans Serif" BEGIN DEFPUSHBUTTON "OK",IDOK,138,7,50,14 PUSHBUTTON "Cancel",IDCANCEL,138,23,50,14 PUSHBUTTON "&Test!",IDC_BUTTON1,48,14,49,15 END
- CWinApp 派生类的InitInstance()函数中添加以下代码。
BOOL CLimitDlgInstanceApp::InitInstance() { / / WNDCLASS wc; // Get the info for this class. // #32770 is the default class name for dialogs boxes. ::GetClassInfo(AfxGetInstanceHandle(), "#32770", &wc); // Change the name of the class. wc.lpszClassName = "MyPrivateClassName"; // Register this class so that MFC can use it. AfxRegisterClass(&wc); / / // ... }
- 对的调用中,上述步骤中:: GetClassInfo(),请确保使用正确的 HINSTANCE 调用,如果对话框资源位于单独的 DLL。
- 生成并运行您的应用程序。使用 Spy + + 工具来验证在对话框中现在使用新的类名。
转自:http://support.microsoft.com/kb/251059
概要
更多信息
若要提供您自己的窗口类名,请执行以下步骤:
- 打开包含对话框中,您项目的工作空间,然后单击ResourceView
- 在资源编辑器中打开对话框。用鼠标右键单击对话框,然后选择属性。注意到为类名在右下角的一个条目。如果您正在使用 Microsoft 基础类库支持的资源文件,则该编辑框被禁用。要启用此选项,请切换到顶级节点上的资源视图中,然后右键单击并选择属性。清除启用 MFC 功能复选框。或为使 Visual C++.NET,清除MFC 模式属性设置为 FALSE。现在显示的对话框中的属性。应启用类名称编辑框。键入类的名称 ;例如 MyPrivateClassName。
- 另外,作为文本文件打开.rc 文件。转到所需的对话框资源,并添加类选项。
IDD_LIMITDLGINSTANCE_DIALOG DIALOGEX 0, 0, 195, 44 STYLE DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU EXSTYLE WS_EX_APPWINDOW CAPTION "LimitDlgInstance" CLASS "MyPrivateClassName" // Add your class name here! FONT 8, "MS Sans Serif" BEGIN DEFPUSHBUTTON "OK",IDOK,138,7,50,14 PUSHBUTTON "Cancel",IDCANCEL,138,23,50,14 PUSHBUTTON "&Test!",IDC_BUTTON1,48,14,49,15 END
- CWinApp 派生类的InitInstance()函数中添加以下代码。
BOOL CLimitDlgInstanceApp::InitInstance() { / / WNDCLASS wc; // Get the info for this class. // #32770 is the default class name for dialogs boxes. ::GetClassInfo(AfxGetInstanceHandle(), "#32770", &wc); // Change the name of the class. wc.lpszClassName = "MyPrivateClassName"; // Register this class so that MFC can use it. AfxRegisterClass(&wc); / / // ... }
- 对的调用中,上述步骤中:: GetClassInfo(),请确保使用正确的 HINSTANCE 调用,如果对话框资源位于单独的 DLL。
- 生成并运行您的应用程序。使用 Spy + + 工具来验证在对话框中现在使用新的类名。