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.