Пример. Отображение диалогового окна через команду меню
Этот раздел содержит процедуры:
Отображает модальное диалоговое окно с помощью команды меню.
Отображение безрежимное диалоговое окно с помощью команды меню.
Обе процедуры примера для приложений MFC и будут работать в приложении создается с помощью Мастер приложений MFC.
Процедуры используют следующие имена и значения:
Элемент |
Имя или значение |
---|---|
Приложение |
DisplayDialog |
Команда меню |
Команда теста в меню; Идентификатор команды = ID_VIEW_TEST |
Диалоговое окно |
Диалоговое окно теста; Класс = CTestDialog; Файл заголовка = TestDialog.h; Testdlg, ptestdlg = переменная |
Обработчик команды |
OnViewTest |
Отображать модальное диалоговое окно
Создание команды меню; в разделе Создание меню или пункты меню.
Создать диалоговое окно; в разделе Запуск редактора диалоговых окон.
Добавьте класс для диалогового окна. Дополнительные сведения см. в разделе Добавление класса.
В Представление классов выберите класс документа (CDisplayDialogDoc). В поле Свойства, нажмите кнопку События . Дважды щелкните идентификатор команды меню (ID_VIEW_TEST) в левой области окна Свойства и выделите Команда. В области справа щелкните стрелку вниз и выберите <Add> OnViewTest.
При добавлении команды меню в мейнфрейму приложения MDI, выделите класс приложения (CDisplayDialogApp) вместо него.
Добавьте следующее включите формулировку в CDisplayDialogDoc.cpp (или CDisplayDialogApp.cpp) после существовать включите формулировки:
#include "TestDialog.h"
Добавьте следующий код в OnViewTest для реализации функциональности.
CTestDialog testdlg; testdlg.DoModal();
Отображение безрежимное диалоговое окно
Выполните первые 4 шага для отображения модального диалогового окна, за исключением select класс представления (CDisplayDialogView) в шаге 4.
Правка DisplayDialogView.h:
Объявите класс диалогового окна перед объявлением первого класса:
class CTestDialog;
Объявите указатель в диалоговое окно после раздела открытого атрибутов:
CTestDialog* m_pTestDlg;
Правка 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