Visual C++. Описание стандартных классов - DoModal

ОГЛАВЛЕНИЕ


DoModal

virtual int DoModal();

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

IDOK или IDCANCEL, если работа с диалоговым окном завершилась без ошибок. В противном случае - 0 или -1. Если диалоговое окно было вызвано в режиме мастера, данная функция возвращает ID_WIZFINISH или IDCANCEL.

Описание

Данная функция вызывается для отображения диалогового окна со вкладками на экране. Возвращаемое значение определяется идентификатором элемента управления, с помощью которого было закрыто диалоговое окно. После выхода из функции объект класса окна уничтожается, но сам объект диалогового окна продолжает существовать. Обычно, информация из переменных объектов класса CPropertyPage извлекается после того, как функция DoModal возвратит значение IDOK. При первом создании вкладки диалогового окна из соответствующего ей ресурса диалогового окна может быть вызвано исключение. Это связано с тем, что объект класса CPropertyPage вносит изменения в стиль ресурса диалогового окна до создания самой вкладки. Поскольку обычно объекты ресурсов имеют атрибут только для чтения, это вызывает исключение. Это исключение обрабатывается программой, в результате чего в системе автоматически появляется модифицированная копия данного ресурса. Таким образом вызванное исключение игнорируется. Поскольку данное исключение должно обрабатываться операционной системой, не помещайте вызов функции CPropertySheet::DoModal в блок try/catch, обрабатывающий все исключения, например, с использованием оператора catch (...). Данный оператор возьмет на себя обработку исключения, предназначенного для операционной системы, что может привести к непредсказуемым последствиям.