Wie können Sie eine MFC-Anwendung sich selbst beenden?
-
08-06-2019 - |
Frage
Was ist der richtige Weg für eine MFC-Anwendung zu sauber schließen sich an?
Lösung
Programmatisch Beenden Sie eine MFC-Anwendung
void ExitMFCApp()
{
// same as double-clicking on main window close box
ASSERT(AfxGetMainWnd() != NULL);
AfxGetMainWnd()->SendMessage(WM_CLOSE);
}
Andere Tipps
AfxGetMainWnd()->PostMessage(WM_CLOSE);
In Unterstützung von @Mike ' s Antwort, der Grund für die Verwendung dieser Methode ist zu trigger die richtigen shutdown-Sequenz.Besonders wichtig für die MDI/SDI-Anwendungen, weil es gibt eine chance für Dokumente auf Eingabeaufforderung vor dem speichern oder exit zum Abbrechen exit.
@Matt Noguchi, Ihre Methode der Umgehung dieser Reihenfolge (die möglicherweise den gewünschten Effekt, nehme ich an, aber wahrscheinlich hast du schon Probleme wenn Sie sind kurzschließen des normalen teardown.
PostQuitMessage( [exit code] );
Wenn es ist eine dialogbasierte Anwendung, die Sie tun können, durch den Aufruf von EndDialog () - Funktion.
Wenn es ist ein SDI/MDI-basierte Anwendung, die Sie anrufen können, DestroyWindow.Aber vor was Sie tun müssen, um die Bereinigung selbst (schließen von Dokumenten, freigeben von Speicher und Ressourcen, zerstören jedes zusätzliche Fenster geschaffen, etc).