Обработайте сообщение WM_SYSCOMMAND
и сделайте в нем что-то подобное.
void CMyApp::OnSysCommand(UINT nID, LPARAM lParam)
{
if(nID == SC_CLOSE)
{
if(MessageBox(_T("Really"), _T("What"), MB_YESNO) == IDYES);
//Do What you want here.
else
//Do something else
}
else
{
CDialog::OnSysCommand(nID, lParam);
}
}
Вот как добавить обработчик WM_SYSCOMMAND в ваш код:
Перейти к ClassView. Щелкните правой кнопкой мыши свой класс диалога, если это приложение на основе диалога ИЛИ класс мэйнфрейма, если это приложение SDI / MDI. Нажмите Свойства.
В окне свойств нажмите кнопку «Сообщения». Прокрутите вниз до WM_SYSCOMMAND и дважды щелкните раскрывающийся список, чтобы добавить обработчик.
ИЛИ
Вы также можете сделать это вручную, добавив запись в карту сообщений. И добавление объявления / определения в .h / .cpp соответственно.