Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Visual C++/MFC/WTL > отменить закрытие по крестику


Автор: mrgloom 29.4.2013, 10:07
я так понял, что при закрытии по крестику вызывается OnCancel()
а что должно быть внутри, чтобы окно никак не реагировало на нажатия крестика закрытия?

Код

virtual void OnCancel();

void CMyDlg::OnCancel()
{
}


Добавлено через 8 минут и 54 секунды
Код

void CMyDlg::OnCancel()
{
   return;
}


так просто? или что то упущено?

Автор: Earnest 30.4.2013, 06:21
Вообще-то "по крестику" присылается команда WM_SYSCOMMAND::CS_CLOSE. Которая в диалоге может трансформироваться в OnCancel. Лучше обрабатывать именно ее, иначе ты вообще лишишься возможности закрыть окно с отменой действия. А еще лучше просто убрать крестик. За него отвечает стиль WS_SYSMENU.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)