Freigeben über


CWnd::DestroyWindow

Zerstört das Windows-Fenster, das dem Objekt CWnd angefügt wird.

virtual BOOL DestroyWindow( );

Rückgabewert

Ungleich 0 (null), wenn das Fenster zerstört wird; andernfalls 0.

Hinweise

Die DestroyWindow-Memberfunktion sendet Nachrichten an das entsprechende Fenster, um es zu deaktivieren und den Eingabefokus zu entfernen. Sie auch zerstört das Menü des Fensters, löscht die Anwendungswarteschlange, zerstört ausstehende Zeitgeber, entfernt Zwischenablagebesitz und unterbricht die Zwischenablagen-Viewer-Kette, wenn CWnd am Anfang der Viewerkette ist. Es WM_DESTROY sendet und WM_NCDESTROY Meldungen in das Fenster. Es zerstört nicht das CWnd-Objekt.

DestroyWindow ist ein Platzhalter für das Ausführen von Bereinigung. Da DestroyWindow eine virtuelle Funktion ist, wird sie in jedem CWnd von abgeleitete Klasse in der Klassenansicht angezeigt. Aber, auch wenn Sie diese Funktion im CWnd überschreiben von abgeleitete Klasse, DestroyWindow wird nicht unbedingt aufgerufen. Wenn DestroyWindow nicht im MFC-Code aufgerufen wird, müssen Sie sie in Ihrem eigenen Code explizit aufrufen, wenn Sie ihn aufgerufen werden soll.

Nehmen Sie beispielsweise Sie haben überschrieben DestroyWindow in CView von abgeleitete Klasse. Da MFC-Quellcode nicht DestroyWindow in jedem von seinem CFrameWnd aufruft von abgeleitete Klassen, das überschriebenes DestroyWindow werden nicht aufgerufen, es sei denn, Sie es explizit aufrufen.

Wenn das Fenster das übergeordnete Element aller Fenster ist, werden diese untergeordneten Fenster automatisch zerstört, wenn das übergeordnete Fenster zerstört wird. Die DestroyWindow-Memberfunktion zerstört untergeordnete Fenster zunächst und dann das Fenster selbst.

Die DestroyWindow-Memberfunktion zerstört auch die nicht modale Dialogfelder, die von CDialog::Create erstellt werden.

Wenn CWnd, das zerstört wird, untergeordnetes Fenster und ermöglicht das WS_EX_NOPARENTNOTIFY Format nicht festlegen, wird die Meldung WM_PARENTNOTIFY zum übergeordneten gesendet.

Beispiel

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

Anforderungen

Header: afxwin.h

Siehe auch

Referenz

CWnd-Klasse

Hierarchiediagramm

CWnd::OnDestroy

CWnd::Detach

DestroyWindow