Question

Quelle est la manière appropriée pour qu’une application MFC se ferme proprement ?

Était-ce utile?

La solution

Terminer par programmation une application 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

Autres conseils

AfxGetMainWnd()->PostMessage(WM_CLOSE);

À l'appui de la réponse de @Mike, la raison d'utiliser cette méthode est de déclencher la séquence d'arrêt correcte.Particulièrement important pour les applications MDI/SDI car cela donne la possibilité aux documents de demander une sauvegarde avant la sortie ou d'annuler la sortie.

@Matt Noguchi, votre méthode contournera cette séquence (ce qui peut être l'effet souhaité, je suppose, mais vous avez probablement problèmes si vous court-circuitez le démontage normal.

PostQuitMessage( [exit code] );

S'il s'agit d'une application basée sur une boîte de dialogue, vous pouvez le faire en appelant la fonction EndDialog().

S'il s'agit d'une application basée sur SDI/MDI, vous pouvez appeler DestroyWindow.Mais avant cela, vous devrez effectuer le nettoyage vous-même (fermer les documents, désallouer la mémoire et les ressources, détruire les fenêtres supplémentaires créées, etc.).

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top