Partilhar via


Macros de classe de janela

Essas macros definem utilitários de classe de janela.

Nome Descrição
DECLARE_WND_CLASS Permite que você especifique o nome de uma nova classe de janela.
DECLARE_WND_CLASS2 (Visual Studio 2017) Permite que você especifique o nome de uma nova classe de janela e a classe de conexão cujo procedimento de janela a nova classe usará.
DECLARE_WND_SUPERCLASS Permite que você especifique o nome de uma classe de janela existente na qual uma nova classe de janela será baseada.
DECLARE_WND_CLASS_EX Permite que você especifique os parâmetros de uma classe.

Requisitos

Cabeçalho: atlwin.h

DECLARE_WND_CLASS

Permite que você especifique o nome de uma nova classe de janela. Coloque essa macro na classe de controle de um controle ATL ActiveX.

DECLARE_WND_CLASS( WndClassName )

Parâmetros

WndClassName
[in] O nome da nova classe de janela. Se NULL, a ATL gerará um nome de classe de janela.

Comentários

Se você estiver usando a opção do compilador /permissive, DECLARE_WND_CLASS causará um erro do compilador; use DECLARE_WND_CLASS2 em vez disso.

DECLARE_WND_CLASS permite especificar o nome de uma nova classe de janela cujas informações serão gerenciadas pelo CWndClassInfo. DECLARE_WND_CLASS define a nova classe de janela implementando a seguinte função estática:

static CWndClassInfo& GetWndClassInfo();

DECLARE_WND_CLASS especifica os seguintes estilos para a nova janela:

  • CS_HREDRAW

  • CS_VREDRAW

  • CS_DBLCLKS

DECLARE_WND_CLASS também especifica a cor da tela de fundo da janela padrão. Use a macro DECLARE_WND_CLASS_EX para fornecer seus próprios estilos e cor da tela de fundo.

O CWindowImpl usa a macro DECLARE_WND_CLASS para criar uma janela com base em uma nova classe de janela. Para substituir esse comportamento, use a macro DECLARE_WND_SUPERCLASS ou forneça sua própria implementação da função GetWndClassInfo.

Para obter mais informações sobre como usar janelas na ATL, confira o artigo Classes de janelas de ATL.

DECLARE_WND_CLASS2

(Visual Studio 2017) Semelhante a DECLARE_WND_CLASS, mas com um parâmetro extra que evita um erro de nome dependente ao compilar com a opção /permissive.

DECLARE_WND_CLASS2( WndClassName, EnclosingClass )

Parâmetros

WndClassName
[in] O nome da nova classe de janela. Se NULL, a ATL gerará um nome de classe de janela.

EnclosingClass
[in] O nome da classe de janela que inclui a nova classe de janela. Não pode ser NULL.

Comentários

Se você estiver usando a opção /permissive, DECLARE_WND_CLASS causará um erro de compilação porque ele contém um nome dependente. DECLARE_WND_CLASS2 exige que você nomeie explicitamente a classe na qual essa macro é usada e não causa o erro no sinalizador /permissive. Caso contrário, essa macro é idêntica a DECLARE_WND_CLASS.

DECLARE_WND_SUPERCLASS

Permite que você especifique os parâmetros de uma classe. Coloque essa macro na classe de controle de um controle ATL ActiveX.

DECLARE_WND_SUPERCLASS( WndClassName, OrigWndClassName )

Parâmetros

WndClassName
[in] O nome da classe de janela que substituirá OrigWndClassName. Se NULL, a ATL gerará um nome de classe de janela.

OrigWndClassName
[in] O nome de uma classe de janela existente.

Comentários

Essa macro permite que você especifique o nome de uma classe de janela que substituirá uma classe de janela existente. CWndClassInfo gerencia as informações da superclasse.

DECLARE_WND_SUPERCLASS implementa a seguinte função estática:

static CWndClassInfo& GetWndClassInfo();

Por padrão, O CWindowImpl usa a macro DECLARE_WND_CLASS para criar uma janela com base em uma nova classe de janela. Ao especificar a macro DECLARE_WND_SUPERCLASS em uma classe derivada de CWindowImpl, a classe de janela será baseada em uma classe existente, mas usará o procedimento de janela. Essa técnica é chamada de superclasse.

Além de usar as macros DECLARE_WND_CLASS e DECLARE_WND_SUPERCLASS, você pode substituir a função GetWndClassInfo com uma implementação própria.

Para obter mais informações sobre como usar janelas na ATL, confira o artigo Classes de janelas de ATL.

DECLARE_WND_CLASS_EX

Permite que você especifique o nome de uma classe de janela existente na qual uma nova classe de janela será baseada. Coloque essa macro na classe de controle de um controle ATL ActiveX.

DECLARE_WND_CLASS_EX( WndClassName, style, bkgnd )

Parâmetros

WndClassName
[in] O nome da nova classe de janela. Se NULL, a ATL gerará um nome de classe de janela.

style
[in] O estilo da janela.

bkgnd
[in] A cor da tela de fundo da janela.

Comentários

Essa macro permite especificar o nome de uma nova classe de janela cujas informações serão gerenciadas por CWndClassInfo. DECLARE_WND_CLASS_EX define a nova classe de janela implementando a seguinte função estática:

static CWndClassInfo& GetWndClassInfo();

Se você quiser usar os estilos padrão e a cor da tela de fundo, use a macro DECLARE_WND_CLASS. Para obter mais informações sobre como usar janelas na ATL, confira o artigo Classes de janelas de ATL.

Confira também

Macros