Шаг 611 - CDialog::EndDialog

void EndDialog( int nResult );

Параметры
nResult
Содержит значение которое будет возвращено от диалогового окна до вызывающего оператора DoModal.

Замечания
Вызовите эту функцию чтобы завершить модальное диалоговое окно. Эта функция возвращает nResult как возвращаемое значение DoModal. Вы должны использовать функцию EndDialog, чтобы завершить обработку всякий раз, когда модальное диалоговое окно создано.
Вы можете вызывать EndDialog в любое время, даже в OnInitDialog, когда Вы должны закрыть диалоговое окно прежде, чем оно показывается или прежде, чем фокус ввода установлен.
EndDialog не закрывает диалоговое окно немедленно. Вместо этого, это устанавливает флажок, который направляет диалоговое окно, чтобы закрыться, как только текущий драйвер сообщения возвращается.

Пример

// MyWnd.cpp
#include "MyDialog.h"

void CMyWnd::ShowDialog()
{
	CMyDialog myDlg;
	int nRet = myDlg.DoModal();

	if ( nRet == IDOK || nRet == 5  )
		AfxMessageBox("Dialog closed successfully");
}

// MyDialog.cpp
void CMyDialog::OnSomeAction()
{
	// Делаем что то
	int nRet = 5; 
	EndDialog(nRet); // Это значение возвращено DoModal!
	// Делаем что-то
	return; // Диалог закрылся и возврат DoModal только здесь!
}

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