Поделиться через


Пример. Отображение диалогового окна через команду меню

В этом разделе содержатся процедуры:

  • Отображение модального диалогового окна с помощью команды меню.

  • Отображение диалогового окна без режима с помощью команды меню.

Оба примера процедуры предназначены для приложений MFC и будут работать в приложении, создаваемом с помощью мастера приложений MFC.

В процедурах используются следующие имена и значения:

Товар Имя или значение
Приложение DisplayDialog
Команда меню Тестовая команда в меню "Вид"; Идентификатор команды = ID_VIEW_TEST
Диалоговое окно Диалоговое окно тестирования; Class = CTestDialog; Файл заголовка = TestDialog.h; Variable = testdlg, ptestdlg
Обработчик команд OnViewTest

Отображение модального диалогового окна

  1. Создайте команду меню; см. статью "Создание меню" или "Элементы меню".

  2. Создание диалогового окна; см. раздел "Запуск редактора диалогов".

  3. Добавьте класс для диалогового окна. Дополнительные сведения см. в разделе "Добавление класса ".

  4. В представлении классов выберите класс документа (CDisplayDialogDoc). В окне Свойства нажмите кнопку События. Дважды щелкните идентификатор команды меню (ID_VIEW_TEST). Затем щелкните стрелку вниз и выберите <"Добавить> OnViewTest".

    Если вы добавили команду меню в мейнфрейм приложения MDI, выберите вместо него класс приложения (CDisplayDialogApp).

  5. Добавьте следующую инструкцию include в CDisplayDialogDoc.cpp (или CDisplayDialogApp.cpp) после существующих инструкций include:

    #include "TestDialog.h"
    
  6. Добавьте следующий код для OnViewTest реализации функции:

    CTestDialog testdlg;
    testdlg.DoModal();
    

Отображение диалогового окна без режима

  1. Выполните первые четыре действия, чтобы отобразить модальное диалоговое окно, за исключением выбора класса представления (CDisplayDialogView) на шаге 4.

  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);
    

См. также

Диалоговые окна
Модальные и немодальные диалоговые окна