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
| 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. |
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.
Se lpszClassName é uma Cadeia de caracteres, ele especifica o nome de classe de janela.
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.
Window Classes Overview, Window Class Structures, BeginPaint, CreateWindow, CreateWindowEx, GetDC, GlobalAddAtom, MAKEINTRESOURCE, PAINTSTRUCT, RegisterClass, WNDCLASSEX, WindowProc, WM_PAINT