Clase de CWindowImpl
Esta clase proporciona métodos para crear o crear 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
la clase, derivada de CWindowImpl.TBase
la clase base de la nueva clase.la clase base predeterminada es CWindow.TWinTraits
clase de los rasgos que define los estilos de la ventana.El valor predeterminado es CControlWinTraits.
Members
Métodos públicos
Name |
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 una subclase de una ventana. |
|
Restaura una ventana previamente subclases. |
Métodos estáticos
Devuelve una instancia estática de CWndClassInfo, que administra la información de la clase de ventana. |
|
Procesa mensajes enviados a la ventana. |
miembros de datos
Señala al procedimiento de ventana original de la clase de la ventana. |
Comentarios
CWindowImpl permite crear una nueva ventana o que cree subclases una ventana existente.el procedimiento de ventana de entity_CODECWindowImpl utiliza un mapa de mensajes para enviar mensajes a los controladores adecuados.
CWindowImpl::Create crea una nueva ventana basándose en la información de la clase de ventana administrada por CWndClassInfo.CWindowImpl contiene la macro de DECLARE_WND_CLASS , que significa que CWndClassInfo registrará una nueva clase de ventana.Si desea crear utiliza una clase de ventana existente, derive la clase de CWindowImpl e incluya la macro de DECLARE_WND_SUPERCLASS .En este caso, CWndClassInfo registrará una clase de ventana que se base en una clase existente pero aplicaciones 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 para una única clase de ventana, cada ventana creada con una instancia de CWindowImpl se basada en la misma clase de ventana.
CWindowImpl también permite crear subclases de la ventana.El método de SubclassWindow adjunta una ventana existente al objeto de CWindowImpl y cambia el procedimiento de ventana para CWindowImpl::WindowProc.Cada instancia de CWindowImpl puede crear subclases de una ventana diferente.
[!NOTA]
Para cualquier objeto determinado de CWindowImpl , llame a Crear o SubclassWindow.No debe invocar ambos métodos en el mismo objeto.
Además de CWindowImpl, ATL proporciona CContainedWindow para crear una ventana contenida dentro de otro objeto.
La clase base destructor (~CWindowImplRoot) garantiza que se ida la ventana antes de que se destruya el objeto.
CWindowImpl deriva de CWindowImplBaseT, que deriva de CWindowImplRoot, que a su vez deriva de TBase y de CMessageMap.
Para obtener más información sobre |
Vea |
---|---|
Crear controles |
|
Utilizando las ventanas en ATL |
|
Asistente para proyectos ATL |
|
Ventanas |
Jerarquía de herencia
TBase
CWindowImplRoot
CWindowImplBaseT
CWindowImpl
Requisitos
encabezado: atlwin.h