Как правильно закрыть приложение MFC?
Как приложение MFC может завершить работу?
Ответы (3)
Программное завершение приложения MFC
void ExitMFCApp()
{
// same as double-clicking on main window close box
ASSERT(AfxGetMainWnd() != NULL);
AfxGetMainWnd()->SendMessage(WM_CLOSE);
}
http://support.microsoft.com/kb/117320
В поддержку ответа @Mike причина использования этого метода заключается в том, чтобы вызвать правильную последовательность выключения. Особенно важно для приложений MDI/SDI, поскольку это дает возможность документам запрашивать сохранение перед выходом или отмену выхода.
@Matt Noguchi, ваш метод позволит обойти эту последовательность (что может быть желаемым эффектом, я полагаю, но у вас, вероятно, возникнут проблемы, если вы замкнёте нормальное отключение.
Если это диалоговое приложение, вы можете сделать это, вызвав функцию EndDialog().
Если это приложение на основе SDI/MDI, вы можете вызвать DestroyWindow. Но перед этим вам нужно будет выполнить очистку самостоятельно (закрытие документов, освобождение памяти и ресурсов, уничтожение любых дополнительных созданных окон и т. д.).