CDialog::DoModal

Материал из Wiki Test Lab
Перейти к: навигация, поиск

Назад    Главная
 

Содержание

CDialog::DoModal

Читать оригинал...

Эта функция-член вызывается для вызова модального диалогового окна, и вернуть результат диалогового окна деланный.

Возвращаемое значение

Значение int, задающее значение параметра nResult, переданный функции-члену CDialog::EndDialog, который используется для того, чтобы закрыть диалоговое окно. Возвращаемое значение – 1, если функция не удалось создать диалоговое окно или IDABORT, если некоторая другая ошибка, в которой регистр Окно вывода будет содержать сведений об ошибке из GetLastError.

Заметки

Эта функция-член обрабатывает все взаимодействие с пользователем, пока диалоговое окно активно. Это, что делает диалоговое окно модальным; то есть пользователь не может взаимодействовать с другими окнами до тех пор, пока диалоговое окно не закрыто. Если пользователь нажимает одну из кнопок в диалоговом окне, например ОК или Отмена, функция-член обработчика сообщений, например OnOK или OnCancel, то вызывается, чтобы попытаться закрыть диалоговое окно. По умолчанию функцию-член OnOK проверяет и обновляет данные из диалогового окна и закрыть диалоговое окно с результатом IDOK и по умолчанию функцию-член OnCancel закрыть диалоговое окно с результатом IDCANCEL без проверки или обновления сведений о диалоговых окон. Можно переопределить эти функции обработчика сообщений, чтобы изменить их расширения функциональности.

Пример

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;
  };
}
Личные инструменты