CDialog::DoModal
Эта функция-член вызывается для вызова модального диалогового окна, и вернуть результат диалогового окна деланный.
virtual INT_PTR DoModal( );
Возвращаемое значение
Значение int, задающее значение параметра nResult, переданный функции-члену CDialog::EndDialog, который используется для того, чтобы закрыть диалоговое окно.Возвращаемое значение – 1, если функция не удалось создать диалоговое окно или IDABORT, если некоторая другая ошибка, в которой регистр Окно вывода будет содержать сведений об ошибке из GetLastError.
Заметки
Эта функция-член обрабатывает все взаимодействие с пользователем, пока диалоговое окно активно.Это, что делает диалоговое окно модальным; то есть пользователь не может взаимодействовать с другими окнами до тех пор, пока диалоговое окно не закрыто.
Если пользователь нажимает одну из кнопок в диалоговом окне, например ОК или Отмена, функция-член обработчика сообщений, например OnOK или OnCancel, то вызывается, чтобы попытаться закрыть диалоговое окно.По умолчанию функцию-член OnOK проверяет и обновляет данные из диалогового окна и закрыть диалоговое окно с результатом IDOK и по умолчанию функцию-член OnCancel закрыть диалоговое окно с результатом IDCANCEL без проверки или обновления сведений о диалоговых окон.Можно переопределить эти функции обработчика сообщений, чтобы изменить их расширения функциональности.
Примечание |
---|
Теперь вызываются PreTranslateMessage для обработки сообщений модального диалогового окна. |
Пример
void CMyDialog::OnMenuShowAboutDialog()
{
// Construct the dialog box passing the
// ID of the dialog template resource
CDialog aboutDlg(IDD_ABOUTBOX);
// Create and show the dialog box
INT_PTR nRet = -1;
nRet = aboutDlg.DoModal();
// Handle the return value from DoModal
switch (nRet)
{
case -1:
AfxMessageBox(_T("Dialog box could not be created!"));
break;
case IDABORT:
// Do something
break;
case IDOK:
// Do something
break;
case IDCANCEL:
// Do something
break;
default:
// Do something
break;
};
}
Требования
Header: afxwin.h