Share via


CWnd::DestroyWindow

Destruye la ventana de Windows asociada al objeto de CWnd .

virtual BOOL DestroyWindow( );

Valor devuelto

Distinto de cero si se destruye la ventana; si no 0.

Comentarios

La función miembro de DestroyWindow envía mensajes adecuados a la ventana para desactivarla y quitar el foco de entrada.También destruye el menú de la ventana, vacía la cola de la aplicación, destruye los temporizadores excepcionales, quita la propiedad del portapapeles, e interrumpe la cadena del visor del Portapapeles si CWnd está en la parte superior de la cadena del visor.Envía los mensajes de WM_DESTROY y de WM_NCDESTROY a la ventana.No destruye el objeto de CWnd .

DestroyWindow es un marcador de posición para realizar la limpieza.Dado que DestroyWindow es una función virtual, se muestra en cualquier CWnd- clase derivada en la vista de clases.Pero incluso si reemplaza esta función en el CWnd- la clase derivada, DestroyWindow no se denomina necesariamente.Si DestroyWindow no se llama al código MFC, se tiene que llamar explícitamente en su propio código si desea que se va a llamar.

Asúmale, por ejemplo, se han reemplazado DestroyWindow en CView- clase derivada.Puesto que el código fuente de MFC no llama a DestroyWindow en cualquiera del CFrameWnd- clases derivadas, el DestroyWindow invalidado no se llame a menos que se lo llame explícitamente.

Si la ventana es el elemento primario de algunas ventanas, estas ventanas secundarias automáticamente se destruyen cuando se destruye la ventana primaria.La función miembro de DestroyWindow primero y después destruye ventanas secundarias la ventana propio.

La función miembro de DestroyWindow también destruye los cuadros de diálogo no modal creados por CDialog::Create.

Si CWnd que es destruido es una ventana secundaria y no hace el estilo de WS_EX_NOPARENTNOTIFY establecer, el mensaje de WM_PARENTNOTIFY se envía al elemento primario.

Ejemplo

// 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

encabezado: afxwin.h

Vea también

Referencia

Clase de CWnd

Gráfico de jerarquía

CWnd::OnDestroy

CWnd::Detach

DestroyWindow