Как приложение MFC может завершиться?

Каким образом подходит приложение MFC для чистого закрытия?

Ответ 1

Программно завершить работу приложения 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

Ответ 2

AfxGetMainWnd()->PostMessage(WM_CLOSE);

Ответ 3

В ответ на ответ @Mike причиной использования этого метода является запуск правильной последовательности выключения. Особенно важно для приложений MDI/SDI, потому что это дает возможность документам запрашивать сохранение перед выходом или отменять выход.

@Matt Noguchi, ваш метод обойдет эту последовательность (это может быть желаемый эффект, я полагаю, но у вас наверняка возникли проблемы, если вы коротко замыкаете нормальный разрыв.

Ответ 4

PostQuitMessage( [exit code] );

Ответ 5

Если это приложение на основе диалога, вы можете сделать это, вызвав функцию EndDialog().

Если это приложение на основе SDI/MDI, вы можете вызвать DestroyWindow. Но перед этим вам нужно будет сделать очистку самостоятельно (закрытие документов, освобождение памяти и ресурсов, уничтожение любых дополнительных окон и т.д.).