WNDCLASS

A WNDCLASS estrutura contém os atributos de classe de janela que são registrados pelo RegisterClass função.

Esta estrutura foi substituída pela estrutura WNDCLASSEX usada com a função de RegisterClassEx . Você ainda pode usar WNDCLASS e RegisterClass se você não precisará definir o ícone pequeno associado com a classe de janela.

typedef struct _WNDCLASS {UINT estilo; 
    WNDPROC lpfnWndProc; 
    int cbClsExtra; 
    int cbWndExtra; 
    IDENTIFICADOR de hInstance; 
    HICON hIcon; 
    HCURSOR hCursor; 
    HBRUSH hbrBackground; 
    LPCTSTR lpszMenuName; 
    LPCTSTR lpszClassName; 
} WNDCLASS 

 

Membros

estilo
Especifica a classe style(s). Estilos podem ser combinados usando o bit a bit ou operador (|). Esse membro pode ser qualquer combinação do seguinte valores:
Valor Ação
CS_BYTEALIGNCLIENT Alinha o área cliente da janela sobre o limite de bytes (na direção x). Este estilo afeta a largura da janela e sua posição horizontal no visor.
CS_BYTEALIGNWINDOW Alinha uma janela em um limite de byte (na direção x). Este estilo afeta a largura da janela e sua posição horizontal no visor.
CS_CLASSDC Aloca um contexto para dispositivo a ser compartilhado por todas as janelas da classe. Porque as classes de janela são processo específico, é possível que vários threads de um aplicativo para criar uma janela da mesma classe. Também é possível para os threads a tentar usar o contexto para dispositivo simultaneamente. Quando isso acontece, o sistema permite que apenas um thread concluir com êxito a sua operação de desenho. Para obter mais informações, consulte Contextos de dispositivo.
CS_DBLCLKS Envia duplo em mensagens para o procedimento de janela quando o usuário clica Duplo o mouse enquanto o cursor estiver dentro de uma janela pertencente à classe.
CS_GLOBALCLASS Permite que um aplicativo criar uma janela da classe independentemente do valor de hInstance parâmetro passado para o CreateWindow ou CreateWindowEx função. Se você não especificar esse estilo, o hInstance parâmetro passado para a função CreateWindow (ou CreateWindowEx) deve ser o mesmo que o hInstance parâmetro passado para o RegisterClass função.
Você pode criar uma classe global criando a classe de janela em um dynamic-link library (DLL) e listando o nome da DLL no registro sob as seguintes chaves:
HKEY_LOCAL_MACHINE\Software
\Microsoft\Windows NT\
CurrentVersion\Windows\AppInit_DLLs
Sempre que um processo é iniciado, o sistema carrega as DLLs especificadas no contexto do processo recém iniciado antes de chamar a função de ponto de entrada nesse processo. A DLL deve registrar a classe durante o seu procedimento de inicialização e deve especificar o estilo CS_GLOBALCLASS.
CS_HREDRAW Redesenha a janela inteira se um movimento ou ajuste de tamanho altera a largura da área do cliente.
CS_NOCLOSE Desabilita a Fechar no menu janela.
CS_OWNDC Aloca um contexto para dispositivo exclusivo para cada janela na classe.
CS_PARENTDC Define a região de corte da janela filho da janela pai para que a criança pode desenhar no pai. Uma janela com o bit de estilo CS_PARENTDC recebe um contexto de dispositivo regular do cache do sistema de contextos de dispositivo. Ele não dá a criança o pai contexto dispositivo ou configurações de contexto de dispositivo. Especificar CS_PARENTDC melhora o desempenho do aplicativo. Para obter mais informações, consulte Contextos de dispositivo.
CS_SAVEBITS Salva, como um bitmap, a parte da imagem na tela obscurecida por uma janela. O sistema usa o bitmap salvo para recriar a imagem da tela quando a janela é removida. O sistema exibe o bitmap em sua localização original e não envia mensagens WM_PAINT Windows obscurecida pela janela se a memória usada pelo bitmap não foi descartada e outras ações de tela não tem invalidado a imagem armazenada. Esse estilo é útil para pequenas janelas (por exemplo, menus ou caixas de diálogo) que são exibidas momentaneamente e, em seguida, removidas antes que ocorra outra atividade de tela. Este estilo aumenta o tempo necessário para exibir a janela, porque o sistema pela primeira vez deve alocar memória para armazenar o bitmap.
CS_VREDRAW Redesenha a janela inteira se um movimento ou ajuste de tamanho altera a altura da área do cliente.

lpfnWndProc
Ponteiro para o procedimento janela. Você deve usar o CallWindowProc função para chamar o procedimento janela. Para obter mais informações, consulte WindowProc.
cbClsExtra
Especifica o número de adicional bytes para alocar seguindo a estrutura de classe de janela. O sistema inicializa os bytes para zero.
cbWndExtra
Especifica o número de adicional bytes para alocar após a instância de janela. O sistema inicializa os bytes para zero. Se um aplicativo usa WNDCLASS para registrar uma caixa de diálogo criada usando a diretiva de classe no arquivo de recurso, ele deve definir esse membro para DLGWINDOWEXTRA.
hInstance
Identificador para a instância que o procedimento de janela desta classe está dentro.
hIcon
Identificador para o ícone de classe. Este membro deve ser um identificador de um recurso de ícone. Se esse membro é NULL, um aplicativo deve desenhar um ícone sempre que o usuário minimiza a janela do aplicativo.
hCursor
Identificador para o cursor classe. Este membro deve ser um identificador de um recurso de cursor. Se esse membro é NULL, um aplicativo deve definir explicitamente a forma cursor sempre que o mouse é movido para a janela do aplicativo.
hbrBackground
Identificador para o pincel de plano de fundo de classe. Esse membro pode ser um identificador para o pincel físico a ser usado para pintura de segundo plano, ou pode ser um valor de cor. Um valor de cor deve ser uma das seguintes cores padrão do sistema (o valor 1 deve ser adicionado para a cor escolhida). Se for fornecido um valor de cor, você deve convertê-lo para um dos seguintes tipos de HBRUSH:

COLOR_ACTIVEBORDER
COLOR_ACTIVECAPTION
COLOR_APPWORKSPACE
COLOR_BACKGROUND
COLOR_BTNFACE
COLOR_BTNSHADOW
COLOR_BTNTEXT
COLOR_CAPTIONTEXT
COLOR_GRAYTEXT
COLOR_HIGHLIGHT
COLOR_HIGHLIGHTTEXT
COLOR_INACTIVEBORDER
COLOR_INACTIVECAPTION
COLOR_MENU
COLOR_MENUTEXT
COLOR_SCROLLBAR
COLOR_WINDOW
COLOR_WINDOWFRAME
COLOR_WINDOWTEXT

O sistema exclui automaticamente pincéis de plano de fundo de classe quando a classe é liberada. Um aplicativo não deve excluir essas escovas, pois uma classe pode ser usada por várias instâncias de um aplicativo.

Quando esse membro é NULL, um aplicativo deve pintar seu próprio fundo sempre que é solicitado para pintar em sua área de cliente. Para determinar se o plano de fundo deve ser pintado, um aplicativo pode Processoar a mensagem WM_ERASEBKGND ou testar o fErase membro do PAINTSTRUCT estrutura preenchida pelo BeginPaint função.

lpszMenuName
Ponteiro para uma Cadeia de caracteres terminada por caractere nulo que especifica o nome de recurso do menu de classe, como o nome aparece no arquivo de recurso. Se você usar um número inteiro para identificar o menu, use o MAKEINTRESOURCE macro. Se esse membro é NULL, janelas que pertencem a essa classe não tem nenhum menu padrão.
lpszClassName
Ponteiro para uma Cadeia de caracteres terminada por caractere nulo ou é um átomo. Se este parâmetro for um átomo, ele deverá ser um átomo global criado por um chamar anterior para o GlobalAddAtom função. O átomo, de 16-bit valor, deve ser na baixa-ordem palavra de lpszClassName; o alto palavra ordem deve ser zero.

Se lpszClassName é uma Cadeia de caracteres, ele especifica o nome de classe de janela.

QuickInfo

nbsp; Windows &NT: requer a versão 3.1 ou posterior.
Windows:Requer o Windows 95 ou posterior.
Windows CE:Requer versão 1.0 ou posterior.
Cabeçalho:Declarado em WinUser. h.
Unicode:Definidos como estruturas ANSI e Unicode.

Ver também

Window Classes Overview, Window Class Structures, BeginPaint, CreateWindow, CreateWindowEx, GetDC, GlobalAddAtom, MAKEINTRESOURCE, PAINTSTRUCT, RegisterClass, WNDCLASSEX, WindowProc, WM_PAINT

Index