Как приложение MFC может завершить себя? - PullRequest
10 голосов
/ 18 августа 2008

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

Ответы [ 5 ]

13 голосов
/ 18 августа 2008
AfxGetMainWnd()->PostMessage(WM_CLOSE);
10 голосов
/ 07 января 2012

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

4 голосов
/ 18 августа 2008
PostQuitMessage( [exit code] );
4 голосов
/ 18 августа 2008

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

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

1 голос
/ 18 сентября 2008

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...