Frage

Was ist der richtige Weg für eine MFC-Anwendung zu sauber schließen sich an?

War es hilfreich?

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);
   }

http://support.microsoft.com/kb/117320

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).

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top