示例:通过菜单命令显示对话框

本主题包含以下过程:

  • 通过菜单命令显示模式对话框。

  • 通过菜单命令显示无模式对话框。

这两个示例过程都适用于 MFC 应用程序,并且将在使用 MFC 应用程序向导创建的应用程序中工作。

这些过程使用以下名称和值:

条目 名称或值
应用程序 DisplayDialog
菜单命令 “视图”菜单上的“测试”命令;命令 ID = ID_VIEW_TEST
對話方塊 “测试”对话框;类 = CTestDialog;头文件 = TestDialog.h;变量 = testdlg、ptestdlg
命令处理程序 OnViewTest

显示模式对话框

  1. 创建菜单命令;请参阅 “创建菜单”或“菜单项”。

  2. 创建对话框;请参阅 “启动对话框编辑器”。

  3. 为对话框添加类。 有关详细信息 ,请参阅“添加类 ”。

  4. 类视图中,选择文档类(CDisplayDialogDoc)。 在 “属性” 窗口中,单击“ 事件 ”按钮。 双击菜单命令的 ID(ID_VIEW_TEST)。 接下来,单击向下箭头并选择“<添加> OnViewTest”。

    如果将菜单命令添加到 MDI 应用程序的大型机,请改为选择应用程序类(CDisplayDialogApp)。

  5. 将以下 include 语句添加到现有 include 语句之后CDisplayDialogDoc.cpp(或CDisplayDialogApp.cpp):

    #include "TestDialog.h"
    
  6. 添加以下代码以实现 OnViewTest 函数:

    CTestDialog testdlg;
    testdlg.DoModal();
    

显示无模式对话框

  1. 执行前四个步骤以显示模式对话框,步骤 4 中选择视图类(CDisplayDialogView 除外)。

  2. 编辑 DisplayDialogView.h:

    • 声明第一个类声明前面的对话框类:
    class CTestDialog;
    
    • 声明指向“属性公共”部分后面的对话框的指针:
    CTestDialog* m_pTestDlg;
    
  3. 编辑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);
    

另请参阅

对话框
模式和无模式对话框