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


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

Этот раздел содержит процедуры:

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

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

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

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

Элемент

Имя или значение

Приложение

DisplayDialog

Команда меню

Команда теста в меню; Идентификатор команды = ID_VIEW_TEST

Диалоговое окно

Диалоговое окно теста; Класс = CTestDialog; Файл заголовка = TestDialog.h; Testdlg, ptestdlg = переменная

Обработчик команды

OnViewTest

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

  1. Создание команды меню; в разделе Создание меню или пункты меню.

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

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

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

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

  5. Добавьте следующее включите формулировку в CDisplayDialogDoc.cpp (или CDisplayDialogApp.cpp) после существовать включите формулировки:

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

    CTestDialog testdlg;
    testdlg.DoModal();  
    

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

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

  2. Правка DisplayDialogView.h:

    • Объявите класс диалогового окна перед объявлением первого класса:

      class CTestDialog;
      
    • Объявите указатель в диалоговое окно после раздела открытого атрибутов:

      CTestDialog* m_pTestDlg;
      
  3. Правка DisplayDialogView.cpp:

    • Добавьте следующее включите формулировку существовать после включения формулировки:

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

Также см. в следующей статье базы знаний:

  • Q251059: HOWTO: Введите имя класса диалогового окна для окна MFC

См. также

Основные понятия

Диалоговые окна

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