Come può un'applicazione MFC è terminata?
-
08-06-2019 - |
Domanda
Qual è il modo corretto per un'applicazione MFC pulito per chiudere in se stessa?
Soluzione
A livello di programmazione di Terminare un'Applicazione MFC
void ExitMFCApp()
{
// same as double-clicking on main window close box
ASSERT(AfxGetMainWnd() != NULL);
AfxGetMainWnd()->SendMessage(WM_CLOSE);
}
Altri suggerimenti
AfxGetMainWnd()->PostMessage(WM_CLOSE);
A sostegno di @Mike per la risposta, il motivo per utilizzare questo metodo è quello di innescare la giusta sequenza di chiusura.Particolarmente importante per MDI/applicazioni SDI, perché si dà la possibilità per i documenti per la richiesta di salvare prima di uscire o di annullare l'uscita.
@Matt Noguchi, il metodo aggirare questa sequenza (che può essere l'effetto desiderato, suppongo, ma probabilmente avete avuto problemi se siete a corto circuito normale di demolizione.
PostQuitMessage( [exit code] );
Se si tratta di una applicazione basata su finestra di dialogo è possibile farlo chiamando EndDialog() funzione.
Se si tratta di un SDI o MDI applicazione è possibile chiamare DestroyWindow.Ma prima che sarà necessario per eseguire la pulitura di te (documenti di chiusura, la deallocazione di memoria e di risorse, distruggendo qualsiasi ulteriore windows creata ecc).