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


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

См. также

Ссылки

Класс CDialog

Диаграмма иерархии

DialogBox

CWnd::IsDialogMessage