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