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