Шаг 603 - CDialog::DoModal

virtual int DoModal( );

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

Замечания
Вызовите эту функцию, чтобы вызвать модальное диалоговое окно и возвращать результат диалогового окна когда выполнено. Эта функция обрабатывает все взаимодействие с пользователем, в то время как диалоговое окно активно. Это - то, что делает диалоговое окно модальным, то есть пользователь не может взаимодействовать с другими окнами, пока диалоговое окно не закрыто.
Если пользователь нажимает одну из кнопок в диалоговом окне, типа OK или Cancel, функции драйвера сообщения, типа OnOK или OnCancel вызваны к попытке, чтобы закрыть диалоговое окно. Значение по умолчанию OnOK функции - проверить правильность и модифицировать данные диалогового окна и закрывать диалоговое окно с результатом IDOK. Эначение по умолчанию OnCancel функции - закроет диалоговое окно с результатом IDCANCEL без того, чтобы подтвердить правильность или модифицировать данные диалогового окна. Вы можете перегружать эти функции драйвера сообщения, чтобы изменить их поведение.

Пример

void CTstApp::OnAppAbout()
{
	// Создать диалоговое окно, передающее 
	// ID ресурса шаблона диалога
	CDialog aboutDlg(IDD_ABOUTBOX);

	// Создайте и покажите диалоговое окно
	int nRet = -1;
	nRet = aboutDlg.DoModal();

	// Обработайте возвращаемое значение из DoModal
	switch ( nRet )
	{
		case -1: 
			AfxMessageBox("Dialog box could not be created!");
			break;
		case IDABORT:
			// Делайте что-то
			break;
		case IDOK:
			// Делайте что-то
			break;
		case IDCANCEL:
			// Делайте что-то
			break;
		default:
			// Делайте что-то
			break;
	};
}

Предыдущий Шаг | Следующий Шаг | Оглавление
Автор Каев Артем - 24.01.2002