Condividi tramite


CWnd::DestroyWindow

Elimina la finestra di Windows associata all'oggetto CWnd.

virtual BOOL DestroyWindow( );

Valore restituito

Diverso da zero se la finestra viene eliminato; in caso contrario 0.

Note

La funzione membro DestroyWindow invia messaggi appropriati alla finestra per disattivarla e rimuovere lo stato attivo per l'input.Anche elimina la finestra, elimina la coda dell'applicazione, elimina i timer costanti, rimuove la proprietà degli Appunti e interrompere la catena del visualizzatore Appunti se CWnd è il primo della catena del visualizzatore.Invia i messaggi WM_NCDESTROY e WM_DESTROY la finestra.Non elimina l'oggetto CWnd.

DestroyWindow è un supporto del posto per eseguire la pulizia.Poiché DestroyWindow è una funzione virtuale, viene visualizzata in qualsiasi CWndclasse derivata in Visualizzazione classi.Ma anche se si esegue l'override della funzione nel CWndnella classe derivata da, DestroyWindow non è necessariamente chiamata.Se DestroyWindow non viene chiamato nel codice MFC, è necessario esplicitamente chiamarlo nel codice se si desidera chiamare.

Si supponga, ad esempio, è stato eseguito l'override DestroyWindow in CViewclasse derivata da.Poiché il codice sorgente MFC non chiama DestroyWindow in qualsiasi del CFrameWndalle classi derivate, il DestroyWindow sottoposto a override non devono essere chiamate a meno che lo si chiama in modo esplicito.

Se la finestra è il padre di windows, queste finestre figlio automaticamente vengono eliminati alla finestra padre viene eliminato.La funzione membro DestroyWindow innanzitutto quindi elimina le finestre figlio della finestra stessa.

La funzione membro DestroyWindow inoltre eliminato finestre di dialogo non modale create da CDialog::Create.

Se CWnd che è stato eliminato è una finestra figlio e non lo stile WS_EX_NOPARENTNOTIFY impostare, il messaggio WM_PARENTNOTIFY viene inviato al padre.

Esempio

// CModeless is a CDialog class representing a modeless dialog
// Destruction of the modeless dialog involves calling DestroyWindow in 
// OnOK() & OnCancel() handlers
void CModeless::OnOK() 
{ 
   if (!UpdateData(TRUE)) 
   {
      TRACE(_T("UpdateData failed during dialog termination\n"));
      // The UpdateData routine will set focus to correct item
      return;
   }
   DestroyWindow();
}

void CModeless::OnCancel()
{
   DestroyWindow();
}

Requisiti

Header: afxwin.h

Vedere anche

Riferimenti

Classe CWnd

Grafico della gerarchia

CWnd::OnDestroy

CWnd::Detach

DestroyWindow