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

Для отображения модальной диалоговой панели сначала создается объект класса CDlg, который будет представлять диалоговую панель. Когда объект создан, диалоговая панель еще не появляется на экране, для этого нужно воспользоваться методом DoModal, определенным в классе CDialog. При вызове метода DoModal выполнение метода, вызвавшего модальный диалог, приостанавливается, пока пользователь не закроет диалоговую панель.

Для отображения модальной диалоговой панели обычно используется следующий код, размещаемый в методе класса приложения, в котором вызывается диалог (например, в методе-обработчике какого-либо сообщения для окна приложения):

#include “dlg.h” …… // Создание объекта класса диалога CDlg Dlg; // при необходимости можно в конструктор класса диалога // передать указатель на родительское окно, по умолчанию // диалог является модальным ко всему приложению int result; // Mожно проинициировать переменные класса Dlg.m_Str=”Введите текст”; // Проверка возвращаемого методом DoModal значения if((result=Dlg.DoModal())==IDOK) { // Код, который вызывается, если пользователь нажимает кнопку "OK" ……… // Можно воспользоваться данными, полученными в процессе диалога AfxMessageBox(MyDialog.m_Str); } else if(result==IDCANCEL) { // Код, который вызывается, если нажата кнопка "Cancel" ……… } ……

Диалоговая панель - главное окно приложения

Диалоговую панель можно использовать и как главное окно приложения. Для этого также сначала следует создать шаблон панели и сгенерировать при помощи ClassWizard класс, отвечающий за работу панели. Затем можно модифицировать шаблон и класс панели для нужд приложения и вызвать эту панель в переопределении метода InitInstance главного класса приложения, начследованного от CWinApp.

В этом случае файл реализации главного класса приложения будет иметь примерно следующий вид:

#include <afxwin.h> #include файл определения главного класса приложения #include файл определения класса диалога BOOL CApp::InitInstance() { // Создание объекта класса диалога CDlg Dlg; // Указатель на объект класса диалога присваивается переменной // m_pMainWnd класса CWinApp (процесс присоединения объекта // главного окна к объекту-приложению) m_pMainWnd= &Dlg; // Отображение на экране диалоговой панели. int result=Dlg.DoModal(); // Проверка возвращаемого методом DoModal значения if(result==IDOK) { …… } else if(result==IDCANCEL) { …… } // Так как диалоговая панель закрыта, то следует возвратить // значение FALSE, чтобы завершить работу приложения return FALSE; }

Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: