Compartilhar via


CWnd::DestroyWindow

Destrói a janela do windows anexada ao objeto de CWnd .

virtual BOOL DestroyWindow( );

Valor de retorno

Diferente de zero se a janela estiver destruída; se não 0.

Comentários

Envia da função de membro de DestroyWindow exibe mensagens para a janela para desativá-la e remova o foco de entrada. Também for o menu da janela, libera a fila do aplicativo, destrói temporizadores pendentes, remove a propriedade da área de transferência, e interrompam a cadeia do Visualizador da Área de Transferência se CWnd está na parte superior da cadeia do visualizador. Envia mensagens de WM_DESTROY e de WM_NCDESTROY a janela. Não destrói o objeto de CWnd .

DestroyWindow é um meio do local para executar limpeza. Porque DestroyWindow é uma função virtual, é mostrada em qualquer CWnd- classe derivada no modo da classe. Mas se você substituir essa função no CWnd- a classe derivada, DestroyWindow não é necessariamente chamada. Se DestroyWindow não é chamado no código MFC, então você precisa explicitamente chamá-lo em seu próprio código se você deseja a ser chamado.

Suponha, por exemplo, você substituiu DestroyWindow em CView- classe derivada. Desde que o código-fonte MFC não chama DestroyWindow em algum do seu CFrameWnd- classes derivadas, seu DestroyWindow substituído não serão chamados a menos que você chamá-lo explicitamente.

Se a janela é o pai de qualquer janela, essas janelas filho são destruídas automaticamente quando a janela pai seja destruída. A função de membro de DestroyWindow for janelas filho primeiro e na janela própria.

A função de membro de DestroyWindow também for as caixas de diálogo sem-modo criadas por CDialog::Create.

Se CWnd que está sendo destruído é uma janela filho e não tem o estilo de WS_EX_NOPARENTNOTIFY definida como, então a mensagem de WM_PARENTNOTIFY é enviada ao pai.

Exemplo

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

Requisitos

Cabeçalho: afxwin.h

Consulte também

Referência

CWnd Class

Gráfico da hierarquia

CWnd::OnDestroy

CWnd::Detach

DestroyWindow