Estilos de classe de janela

Os estilos de classe definem elementos adicionais da classe de janela. Dois ou mais estilos podem ser combinados usando o operador OR (|) bit a bit. Para atribuir um estilo a uma classe de janela, atribua o estilo ao membro de estilo da estrutura WNDCLASSEX .

Exemplo

    WNDCLASS wc = {};
    wc.lpfnWndProc = s_DropDownWndProc;
    wc.cbWndExtra = sizeof(CTipACDialog *);
    wc.hInstance = g_hInstance;
    wc.hCursor = LoadCursor(NULL, IDC_ARROW);
    wc.hbrBackground = (HBRUSH)(COLOR_WINDOW + 1);
    wc.style = CS_SAVEBITS | CS_DROPSHADOW;
    wc.lpszClassName = s_wzClassName;
    RegisterClass(&wc);

Exemplo das Amostras do Windows Classic no GitHub.

Constantes

Veja a seguir os estilos de classe de janela.

Constante/valor Descrição
CS_BYTEALIGNCLIENT
0x1000
Alinha a área do cliente da janela em um limite de bytes (na direção x). Esse estilo afeta a largura da janela e seu posicionamento horizontal na tela.
CS_BYTEALIGNWINDOW
0x2000
Alinha a janela em um limite de byte (na direção x). Esse estilo afeta a largura da janela e seu posicionamento horizontal na tela.
CS_CLASSDC
0x0040
Aloca um contexto de dispositivo a ser compartilhado por todas as janelas da classe . Como as classes de janela são específicas do processo, é possível que vários threads de um aplicativo criem uma janela da mesma classe. Também é possível que os threads tentem usar o contexto do dispositivo simultaneamente. Quando isso acontece, o sistema permite que apenas um thread conclua com êxito sua operação de desenho.
CS_DBLCLKS
0x0008
Envia uma mensagem de clique duplo para o procedimento de janela quando o usuário clica duas vezes no mouse enquanto o cursor está dentro de uma janela pertencente à classe .
CS_DROPSHADOW
0x00020000
Habilita o efeito de sombra de soltar em uma janela. O efeito é ativado e desativado por meio de SPI_SETDROPSHADOW. Normalmente, isso é habilitado para janelas pequenas e de curta duração, como menus, para enfatizar sua relação de ordem Z com outras janelas. O Windows criado a partir de uma classe com esse estilo deve ser janelas de nível superior; eles podem não ser janelas filho.
CS_GLOBALCLASS
0x4000
Indica que a classe de janela é uma classe global do aplicativo. Para obter mais informações, consulte a seção "Classes globais de aplicativo" de Sobre classes de janela.
CS_HREDRAW
0x0002
Redesenha toda a janela se um ajuste de movimento ou tamanho alterar a largura da área do cliente.
CS_NOCLOSE
0x0200
Desabilita Fechar no menu da janela.
CS_OWNDC
0x0020
Aloca um contexto de dispositivo exclusivo para cada janela na classe .
CS_PARENTDC
0x0080
Define o retângulo de recorte da janela filho como o da janela pai para que o filho possa desenhar no pai. Uma janela com o bit de estilo CS_PARENTDC recebe um contexto de dispositivo regular do cache de contextos de dispositivo do sistema. Ele não fornece ao filho o contexto do dispositivo pai ou as configurações de contexto do dispositivo. Especificar CS_PARENTDC melhora o desempenho de um aplicativo.
CS_SAVEBITS
0x0800
Salva, como um bitmap, a parte da imagem de tela obscurecida por uma janela dessa classe. Quando a janela é removida, o sistema usa o bitmap salvo para restaurar a imagem da tela, incluindo outras janelas que foram obscurecidas. Portanto, o sistema não envia WM_PAINT mensagens para janelas que foram obscurecidas se a memória usada pelo bitmap não tiver sido descartada e se outras ações de tela não invalidaram a imagem armazenada.
Esse estilo é útil para janelas pequenas (por exemplo, menus ou caixas de diálogo) que são exibidas brevemente e removidas antes que outra atividade de tela ocorra. Esse estilo aumenta o tempo necessário para exibir a janela, pois o sistema deve primeiro alocar memória para armazenar o bitmap.
CS_VREDRAW
0x0001
Redesenha toda a janela se um ajuste de movimento ou tamanho alterar a altura da área do cliente.

Requisitos

Requisito Valor
Cliente mínimo com suporte
Windows 2000 Professional [somente aplicativos da área de trabalho]
Servidor mínimo com suporte
Windows 2000 Server [somente aplicativos da área de trabalho]
Cabeçalho
Winuser.h (inclua Windows.h)