Partilhar via


Noções básicas sobre características de janela

As classes de características de janela fornecem um método simples para padronizar os estilos utilizados na criação de um objeto de janela da ATL. As características da janela são aceitas como parâmetros de modelo pelo CWindowImpl e por outras classes de janela da ATL como uma forma de fornecer estilos de janela padrão na classe.

Se o criador de uma instância de janela não fornecer estilos explicitamente na chamada para Create, você poderá usar uma classe de características para garantir que a janela ainda seja criada com os estilos corretos. Você pode até garantir que determinados estilos sejam definidos para todas as instâncias dessa classe de janela, bem como que outros estilos sejam definidos por instância.

Modelos de características de janela da ATL

A ATL fornece dois modelos de características de janela que permitem definir estilos padrão em tempo de compilação usando os parâmetros de modelo deles.

Classe Descrição
CWinTraits Use esse modelo quando quiser fornecer estilos de janela padrão que serão utilizados somente quando nenhum outro estilo for especificado na chamada para Create. Os estilos fornecidos no runtime têm precedência sobre os estilos definidos no tempo de compilação.
CWinTraitsOR Use essa classe quando quiser especificar estilos que sempre devem ser definidos para a classe de janela. Os estilos fornecidos no runtime são combinados com os estilos definidos no tempo de compilação usando o operador OR bit-a-bit.

Além desses modelos, a ATL fornece uma série de especializações predefinidas do modelo CWinTraits para combinações de estilos de janela usadas frequentemente. Confira a documentação de referência de CWinTraits para obter todos os detalhes.

Características personalizadas de janela

É improvável, mas, caso a especialização de um dos modelos fornecidos pela ATL não seja suficiente e você precise criar sua própria classe de características, bastará criar uma classe que implemente duas funções estáticas: GetWndStyle e GetWndStyleEx:

static DWORD GetWndStyle(DWORD dwStyle);
static DWORD GetWndExStyle(DWORD dwExStyle);

Para cada uma dessas funções será passado algum valor de estilo no runtime que ela poderá usar para produzir um novo valor de estilo. Se a classe de características de janela estiver sendo usada como o argumento de modelo para uma classe de janela da ATL, os valores de estilo passados para essas funções estáticas serão os que foram passados como argumentos de estilo para Create.

Confira também

Classes de janela