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 |
---|---|
Crea una ventana. |
Métodos de CWindowImplBaseT
Proporciona el procesamiento de mensajes predeterminado. |
|
Devuelve el mensaje actual. |
|
Devuelve el procedimiento de ventana actual. |
|
Se llama después de recibir el último mensaje (normalmente WM_NCDESTROY). |
|
Crea subclases de una ventana. |
|
Restaura una ventana cuyas subclases se han creado previamente. |
Métodos estáticos
Devuelve una instancia estática de CWndClassInfo, que administra la información de la clase de ventana. |
|
Procesa los mensajes enviados a la ventana. |
Miembros de datos
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 |
|
Utilizar ventanas en ATL |
|
Asistente para proyectos ATL |
Jerarquía de herencia
TBase
CWindowImplRoot
CWindowImplBaseT
CWindowImpl
Requisitos
Encabezado: atlwin.h