Шаг 616 - CDialog::OnCancel

virtual void OnCancel( );

Замечания
Рамка вызывает эту функцию когда пользователь нажимает кнопку Cancel или нажимает клавишу ESC в модальном или немодальном диалоговом окне.
Отмените эту функцию, чтобы выполнить действие кнопки Cancel. Значение по умолчанию просто завершает модальное диалоговое окно, вызывая EndDialog чтобы возвратить IDCANCEL.
Если Вы выполняете кнопку Cancel в немодальном диалоговом окне, Вы должны перегрузить OnCancel функцию и вызывать DestroyWindow изнутри этого. Не вызовите функцию базового класса, потому что это вызывает EndDialog, который будет делать диалоговое окно невидимым, но не уничтожать это.

Пример

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

void CMyDialog::OnCancel() 
{
	// TODO: Добавьте очистку  здесь
	// Гарантировать, что Вы сбрасываете все значения обратно 
	// перед модификацией. Этот драйвер вызван
	// когда пользователь не хочет сохранять изменения.
   
	if ( AfxMessageBox("Are you sure you want to abort the changes?", 
		MB_YESNO) == IDNO )
		return;	// Дать пользователю возможность, если он несознательно нажал
			// кнопку Отмены. Если он говорит No, возврат.  Если
			// Да, идите вперед и сбросьте значения, закройте диалог.

	m_nMyValue = m_nPrevValue;
	m_pMyString = NULL; 

	CDialog::OnCancel();
}

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