Compartir a través de


CWindowImpl Class

Proporciona métodos para crear una ventana o subclases de una ventana.

Importante

Esta clase y sus miembros no se pueden utilizar en las aplicaciones que se ejecutan en Windows en tiempo de ejecución.

template < 
class T, 
class TBase= CWindow, 
class TWinTraits= CControlWinTraits  
> 
class ATL_NO_VTABLE CWindowImpl : 
public CWindowImplBaseT< TBase, TWinTraits>

Parámetros

  • T
    Nueva clase derivada de CWindowImpl.

  • TBase
    Clase base de la clase. De manera predeterminada, la clase base es CWindow.

  • TWinTraits
    Clase de rasgos que define los estilos de la ventana. El valor predeterminado es CControlWinTraits.

Miembros

Métodos públicos

Nombre

Descripción

CWindowImpl::Create

Crea una ventana.

Métodos de CWindowImplBaseT

DefWindowProc

Proporciona el procesamiento de mensajes predeterminado.

GetCurrentMessage

Devuelve el mensaje actual.

GetWindowProc

Devuelve el procedimiento de ventana actual.

OnFinalMessage

Se llama después de recibir el último mensaje (normalmente WM_NCDESTROY).

SubclassWindow

Crea subclases de una ventana.

UnsubclassWindow

Restaura una ventana cuyas subclases se han creado previamente.

Métodos estáticos

GetWndClassInfo

Devuelve una instancia estática de CWndClassInfo, que administra la información de la clase de ventana.

WindowProc

Procesa los mensajes enviados a la ventana.

Miembros de datos

m_pfnSuperWindowProc

Señala al procedimiento de ventana original de la clase de la ventana.

Comentarios

Puede utilizar CWindowImpl para crear una ventana o crear subclases de una ventana existente. El procedimiento de ventana CWindowImpl utiliza un mapa de mensajes para enviar los mensajes a los controladores adecuados.

CWindowImpl::Create crea una ventana basándose en la información de la clase de ventana que CWndClassInfo administra. CWindowImpl contiene la macro DECLARE_WND_CLASS, lo que significa que CWndClassInfo registra una nueva clase de ventana. Si desea crear una superclase de una clase de ventana existente, derive la clase de CWindowImpl e incluya la macro DECLARE_WND_SUPERCLASS. En este caso, CWndClassInfo registra una clase de ventana que se basa en una clase existente, pero utiliza CWindowImpl::WindowProc. Por ejemplo:

class ATL_NO_VTABLE CMyWindow :
   OtherInheritedClasses
   public CComControl<CMyWindow>
          // CComControl derives from CWindowImpl
{
public:
   // 1. The NULL parameter means ATL will generate a
   //    name for the superclass
   // 2. The "EDIT" parameter means the superclass is
   //    based on the standard Windows Edit box
   DECLARE_WND_SUPERCLASS(NULL, _T("EDIT"))

   // Remainder of class declaration omitted

Nota

Dado que CWndClassInfo administra la información solo para una clase de ventana, cada ventana creada con una instancia de CWindowImpl se basa en la misma clase de ventana.

CWindowImpl también permite crear subclases de una ventana. El método SubclassWindow adjunta una ventana existente al objeto CWindowImpl y cambia el procedimiento de ventana a CWindowImpl::WindowProc. Cada instancia de CWindowImpl puede crear subclases de una ventana diferente.

Nota

Para cualquier objeto CWindowImpl dado, llame a Create o SubclassWindow.No invoque ambos métodos en el mismo objeto.

Además de CWindowImpl, ATL proporciona CContainedWindow para crear una ventana incluida en otro objeto.

El destructor de clase base (~CWindowImplRoot) garantiza que la ventana desaparezca antes de que se destruya el objeto.

CWindowImpl deriva de CWindowImplBaseT, que deriva de CWindowImplRoot, que deriva de TBase y de CMessageMap.

Para obtener más información sobre

Vea

Crear controles

Tutorial de ATL

Utilizar ventanas en ATL

Clases de ventana ATL

Asistente para proyectos ATL

Crear un proyecto ATL

Jerarquía de herencia

CMessageMap

TBase

CWindowImplRoot

CWindowImplBaseT

CWindowImpl

Requisitos

Encabezado: atlwin.h

Vea también

Referencia

BEGIN_MSG_MAP

CComControl Class

Otros recursos

ATL Class Overview