Estrutura WNDCLASSEXW (winuser.h)

Contém informações de classe de janela. Ele é usado com as funções RegisterClassEx e GetClassInfoEx .

A estrutura WNDCLASSEX é semelhante à estrutura WNDCLASS . Há duas diferenças. WNDCLASSEX inclui o membro cbSize , que especifica o tamanho da estrutura e o membro hIconSm, que contém um identificador para um pequeno ícone associado à classe de janela.

Sintaxe

typedef struct tagWNDCLASSEXW {
  UINT      cbSize;
  UINT      style;
  WNDPROC   lpfnWndProc;
  int       cbClsExtra;
  int       cbWndExtra;
  HINSTANCE hInstance;
  HICON     hIcon;
  HCURSOR   hCursor;
  HBRUSH    hbrBackground;
  LPCWSTR   lpszMenuName;
  LPCWSTR   lpszClassName;
  HICON     hIconSm;
} WNDCLASSEXW, *PWNDCLASSEXW, *NPWNDCLASSEXW, *LPWNDCLASSEXW;

Membros

cbSize

Tipo: UINT

O tamanho, em bytes, dessa estrutura. Defina esse membro como sizeof(WNDCLASSEX). Certifique-se de definir esse membro antes de chamar a função GetClassInfoEx .

style

Tipo: UINT

Os estilos de classe. Esse membro pode ser qualquer combinação dos Estilos de Classe.

lpfnWndProc

Tipo: WNDPROC

Um ponteiro para o procedimento de janela. Você deve usar a função CallWindowProc para chamar o procedimento de janela. Para obter mais informações, consulte WindowProc.

cbClsExtra

Tipo: int

O número de bytes extras a serem alocados seguindo a estrutura de classe de janela. O sistema inicializa os bytes como zero.

cbWndExtra

Tipo: int

O número de bytes extras a serem alocados após a instância da janela. O sistema inicializa os bytes como zero. Se um aplicativo usar WNDCLASSEX para registrar uma caixa de diálogo criada usando a diretiva CLASS no arquivo de recurso, ele deverá definir esse membro como DLGWINDOWEXTRA.

hInstance

Tipo: HINSTANCE

Um identificador para a instância que contém o procedimento de janela para a classe .

hIcon

Tipo: HICON

Um identificador para o ícone de classe. Esse membro deve ser um identificador para um recurso de ícone. Se esse membro for NULL, o sistema fornecerá um ícone padrão.

hCursor

Tipo: HCURSOR

Um identificador para o cursor de classe. Esse membro deve ser um identificador para um recurso de cursor. Se esse membro for NULL, um aplicativo deverá definir explicitamente a forma do cursor sempre que o mouse se mover para a janela do aplicativo.

hbrBackground

Tipo: HBRUSH

Um identificador para o pincel de plano de fundo da classe. Esse membro pode ser um identificador para o pincel a ser usado para pintar a tela de fundo 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 à cor escolhida). Se um valor de cor for fornecido, você deverá convertê-lo em um dos seguintes tipos 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 tela de fundo da classe quando a classe não é registrada usando UnregisterClass. Um aplicativo não deve excluir esses pincéis.

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

lpszMenuName

Tipo: LPCTSTR

Ponteiro para uma cadeia de caracteres terminada em nulo que especifica o nome do recurso do menu de classe, como o nome aparece no arquivo de recurso. Se você usar um inteiro para identificar o menu, use a macro MAKEINTRESOURCE . Se esse membro for NULL, as janelas que pertencem a essa classe não terão nenhum menu padrão.

lpszClassName

Tipo: LPCTSTR

Um ponteiro para uma cadeia de caracteres terminada em nulo ou é um atom. Se esse parâmetro for um atom, ele deverá ser um atom de classe criado por uma chamada anterior para a função RegisterClass ou RegisterClassEx . O átomo deve estar na palavra de baixa ordem de lpszClassName; a palavra de alta ordem deve ser zero.

Se lpszClassName for uma cadeia de caracteres, ele especificará o nome da classe de janela. O nome da classe pode ser qualquer nome registrado com RegisterClass ou RegisterClassEx ou qualquer um dos nomes de classe de controle predefinidos.

O comprimento máximo para lpszClassName é 256. Se lpszClassName for maior que o comprimento máximo, a função RegisterClassEx falhará.

hIconSm

Tipo: HICON

Um identificador para um ícone pequeno associado à classe de janela. Se esse membro for NULL, o sistema pesquisará no recurso de ícone especificado pelo membro hIcon um ícone do tamanho apropriado a ser usado como o ícone pequeno.

Comentários

Observação

O cabeçalho winuser.h define WNDCLASSEX como um alias que seleciona automaticamente a versão ANSI ou Unicode dessa função com base na definição da constante de pré-processador UNICODE. Misturar o uso do alias neutro de codificação com código que não seja neutro em codificação pode levar a incompatibilidades que resultam em erros de compilação ou de runtime. Para obter mais informações, consulte Convenções para protótipos de função.

Requisitos

   
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)

Confira também

Conceitual

GetClassInfoEx

Referência

Registerclassex

UnregisterClass

Classes de janela