示例:通过菜单命令显示对话框
本主题包含以下过程:
通过菜单命令显示模式对话框。
通过菜单命令显示无模式对话框。
这两个示例过程都适用于 MFC 应用程序,并在使用 MFC 应用程序向导创建的应用程序中发挥作用。
这些过程使用以下名称和值:
项 | 名称或值 |
---|---|
应用程序 | DisplayDialog |
菜单命令 | Test command on View menu; Command ID = ID_VIEW_TEST |
对话框 | Test dialog box; Class = CTestDialog; Header file = TestDialog.h; Variable = testdlg, ptestdlg |
命令处理程序 | OnViewTest |
显示模式对话框
创建菜单命令;请参阅创建菜单或菜单项。
创建对话框;请参阅启动对话框编辑器。
为对话框添加类。 有关详细信息,请参阅添加类。
在“类视图”中,选择文档类 (CDisplayDialogDoc)。 在“属性”窗口中,单击“事件”按钮。 双击菜单命令 (ID_VIEW_TEST) 的 ID。 接下来,单击向下箭头并选择“<添加> OnViewTest”。
如果将菜单命令添加到 MDI 应用程序的大型机,请改为选择应用程序类 (CDisplayDialogApp)。
将以下 include 语句添加到 CDisplayDialogDoc.cpp(或 CDisplayDialogApp.cpp)现有 include 语句之后:
#include "TestDialog.h"
将以下代码添加到
OnViewTest
以实现函数:CTestDialog testdlg; testdlg.DoModal();
显示无模式对话框
执行前四个步骤(除去在步骤 4 中选择视图类 (CDisplayDialogView))以显示模式对话框。
编辑 DisplayDialogView.h:
- 声明第一个类声明前面的对话框类:
class CTestDialog;
- 声明指向“特性”公共部分后面的对话框的指针:
CTestDialog* m_pTestDlg;
编辑 DisplayDialogView.cpp:
- 在现有 include 语句后面添加以下 include 语句:
#include "TestDialog.h"
- 将以下代码添加到构造函数:
m_pTestDlg = NULL;
- 将以下代码添加到析构函数:
delete m_pTestDlg;
- 将以下代码添加到
OnViewTest
以实现函数:
if (NULL == m_pTestDlg) { m_pTestDlg = new CTestDialog(this); m_pTestDlg->Create(CTestDialog::IDD, this); } m_pTestDlg->ShowWindow(SW_SHOW);