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

Как правильно закрыть приложение MFC?


person Mike    schedule 18.08.2008    source источник


Ответы (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

person Bruno Schwarzkorpf    schedule 07.01.2012

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

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

person Aidan Ryan    schedule 18.08.2008

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

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

person Gautam Jain    schedule 18.09.2008