Partager via


CWnd::DestroyWindow

Perd la fenêtre de windows attachée à l'objet d' CWnd .

virtual BOOL DestroyWindow( );

Valeur de retour

Une valeur différente de zéro si la fenêtre est détruite ; sinon 0.

Notes

La fonction membre d' DestroyWindow envoie les messages pertinents dans la fenêtre pour la mise et pour supprimer désactiver le focus d'entrée. Elle détruit également le menu de fenêtre vide, la file d'attente d'application, détruit les minuteries en attente, supprime la propriété du presse-papiers, et arrête la chaîne du Presse-papiers si CWnd est en haut de la chaîne de visionneuse. Il envoie des messages de WM_DESTROY et de WM_NCDESTROY dans la fenêtre. Il ne supprime pas l'objet d' CWnd .

DestroyWindow est un espace réservé pour effectuer un nettoyage. Étant donné qu' DestroyWindow est une fonction virtuelle, elle est présentée dans tout CWndclasse dérivée dans l'Affichage de classes. Mais même si vous substituez cette fonction dans votre CWnd- la classe dérivée, DestroyWindow n'est pas nécessairement appelée. Si DestroyWindow n'est pas appelé dans le code MFC, vous devez explicitement l'appeler dans votre propre code si vous le souhaitez à appeler.

Assumez-, par exemple, vous avez remplacé DestroyWindow dans CViewclasse dérivée. Étant donné que le code source MFC n'appelle DestroyWindow dans aucun de son CFrameWnd- les classes dérivées, votre DestroyWindow substitué ne seront pas appelées à moins que vous l'avez appelé explicitement.

Si la fenêtre est le parent de windows, ces fenêtres enfants sont automatiquement perdues lorsque la fenêtre parente est perdue. La fonction membre d' DestroyWindow d'abord puis détruit les fenêtres enfants la fenêtre elle-même.

La fonction membre d' DestroyWindow détruit également des boîtes de dialogue non modale créées par CDialog::Create.

Si CWnd est perdu est une fenêtre enfant et n'est pas définir le style de WS_EX_NOPARENTNOTIFY , le message de WM_PARENTNOTIFY est envoyé au parent.

Exemple

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

Configuration requise

Header: afxwin.h

Voir aussi

Référence

CWnd, classe

Graphique de la hiérarchie

CWnd::OnDestroy

CWnd::Detach

DestroyWindow