Macros de clase de ventana

Estas macros definen las utilidades de la clase de ventana.

Nombre Descripción
DECLARE_WND_CLASS Permite especificar el nombre de una clase de ventana nueva.
DECLARE_WND_CLASS2 (Visual Studio 2017) Permite especificar el nombre de una clase de ventana nueva y la clase envolvente que usarán el procedimiento de ventana de la clase nueva.
DECLARE_WND_SUPERCLASS Permite especificar el nombre de una clase de ventana existente en la que se basará una clase de ventana nueva.
DECLARE_WND_CLASS_EX Permite especificar los parámetros de una clase.

Requisitos

Encabezado: atlwin.h

DECLARE_WND_CLASS

Permite especificar el nombre de una clase de ventana nueva. Coloque esta macro en la clase de control de un control ATL ActiveX.

DECLARE_WND_CLASS( WndClassName )

Parámetros

WndClassName
[in] El nombre de la clase de ventana nueva. Si es NULL, ATL generará un nombre de clase de ventana.

Comentarios

Si usa la opción del compilador /permissive- , DECLARE_WND_CLASS generará un error del compilador, en su lugar, use DECLARE_WND_CLASS2.

DECLARE_WND_CLASS permite especificar el nombre de una clase de ventana nueva cuya información se administrará mediante CWndClassInfo. DECLARE_WND_CLASS define la clase de ventana nueva mediante la implementación de la siguiente función estática:

static CWndClassInfo& GetWndClassInfo();

DECLARE_WND_CLASS especifica los siguientes estilos para la ventana nueva:

  • CS_HREDRAW

  • CS_VREDRAW

  • CS_DBLCLKS

DECLARE_WND_CLASS también especifica el color de fondo de la ventana predeterminada. Use la macro DECLARE_WND_CLASS_EX para proporcionar los estilos y color de fondo propios.

CWindowImpl usa la macro DECLARE_WND_CLASS para crear una ventana basada en una clase de ventana nueva. Para invalidar este comportamiento, use la macro DECLARE_WND_SUPERCLASS o proporcione una implementación propia de la función GetWndClassInfo.

Para más información sobre el uso de ventanas en ATL, consulte el artículo Clases de ventanas de ATL.

DECLARE_WND_CLASS2

(Visual Studio 2017) Similar a DECLARE_WND_CLASS, pero con un parámetro adicional que evita un error de nombre dependiente al compilar con la opción /permissive- .

DECLARE_WND_CLASS2( WndClassName, EnclosingClass )

Parámetros

WndClassName
[in] El nombre de la clase de ventana nueva. Si es NULL, ATL generará un nombre de clase de ventana.

EnclosingClass
[in] El nombre de la clase de ventana que incluye la nueva. No puede ser NULL.

Comentarios

Si usa la opción /permissive- , DECLARE_WND_CLASS generará un error de compilación porque contiene un nombre dependiente. DECLARE_WND_CLASS2 requiere que asigne explícitamente el nombre de la clase en el que se usa esta macro y no genera el error en la marca /permissive-flag. Por lo demás, esta macro es idéntica a DECLARE_WND_CLASS.

DECLARE_WND_SUPERCLASS

Permite especificar los parámetros de una clase. Coloque esta macro en la clase de control de un control ATL ActiveX.

DECLARE_WND_SUPERCLASS( WndClassName, OrigWndClassName )

Parámetros

WndClassName
[in] El nombre de la clase de ventana que es la superclase de OrigWndClassName. Si es NULL, ATL generará un nombre de clase de ventana.

OrigWndClassName
[in] El nombre de una clase de ventana existente.

Comentarios

Esta macro permite especificar el nombre de una clase de ventana que será una superclase de una clase de ventana existente. CWndClassInfo administra la información de la superclase.

DECLARE_WND_SUPERCLASS implementa la siguiente función estática:

static CWndClassInfo& GetWndClassInfo();

De forma predeterminada, CWindowImpl usa la macro DECLARE_WND_CLASS para crear una ventana basada en una clase de ventana nueva. Al especificar la macro DECLARE_WND_SUPERCLASS en una clase derivada de CWindowImpl, la clase de ventana se basará en una clase existente, pero usará el procedimiento de ventana. Esta técnica se denomina creación de superclases.

Además de usar las macros DECLARE_WND_CLASS y DECLARE_WND_SUPERCLASS, puede invalidar la función GetWndClassInfo con una implementación propia.

Para más información sobre el uso de ventanas en ATL, consulte el artículo Clases de ventanas de ATL.

DECLARE_WND_CLASS_EX

Permite especificar el nombre de una clase de ventana existente en la que se basará una clase de ventana nueva. Coloque esta macro en la clase de control de un control ATL ActiveX.

DECLARE_WND_CLASS_EX( WndClassName, style, bkgnd )

Parámetros

WndClassName
[in] El nombre de la clase de ventana nueva. Si es NULL, ATL generará un nombre de clase de ventana.

style
[in] El estilo de la ventana.

bkgnd
[in] El color de fondo de la ventana.

Comentarios

Esta macro permite especificar los parámetros de clase de una clase de ventana nueva, esta información será administrada por CWndClassInfo. DECLARE_WND_CLASS_EX define la clase de ventana nueva con la implementación de la siguiente función estática:

static CWndClassInfo& GetWndClassInfo();

Si quiere usar los estilos y el color de fondo predeterminados, use la macro DECLARE_WND_CLASS. Para más información sobre el uso de ventanas en ATL, consulte el artículo Clases de ventanas de ATL.

Consulte también

Macros