Domanda

Qual è il modo corretto per un'applicazione MFC pulito per chiudere in se stessa?

È stato utile?

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

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

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

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top