Compartilhar via


Estrutura WNDCLASSW (winuser.h)

Contém os atributos de classe de janela registrados pela função RegisterClass.

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

Sintaxe

typedef struct tagWNDCLASSW {
  UINT      style;
  WNDPROC   lpfnWndProc;
  int       cbClsExtra;
  int       cbWndExtra;
  HINSTANCE hInstance;
  HICON     hIcon;
  HCURSOR   hCursor;
  HBRUSH    hbrBackground;
  LPCWSTR   lpszMenuName;
  LPCWSTR   lpszClassName;
} WNDCLASSW, *PWNDCLASSW, *NPWNDCLASSW, *LPWNDCLASSW;

Membros

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 da 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 usa WNDCLASS para registrar uma caixa de diálogo criada usando a diretiva CLASS no arquivo de recurso, ele deve definir esse membro como DLGWINDOWEXTRA.

hInstance

Tipo: HINSTANCE

Um identificador para a instância que contém o procedimento de janela da 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 estiver 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 estiver 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 físico 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 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 não é registrada usando UnregisterClass. Um aplicativo não deve excluir esses pincéis.

Quando esse membro é NULL, um aplicativo deve pintar sua própria tela 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

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 estiver NULL, as janelas pertencentes 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 átomo. 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, ela especifica 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 RegisterClass falhará.

Observações

Nota

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

Requisitos

Requisito Valor
de cliente com suporte mínimo Windows 2000 Professional [somente aplicativos da área de trabalho]
servidor com suporte mínimo Windows 2000 Server [somente aplicativos da área de trabalho]
cabeçalho winuser.h (inclua Windows.h)

Consulte também

BeginPaint

Conceitual

CreateWindow

CreateWindowEx

GetDC

MAKEINTRESOURCE

outros recursos

PAINTSTRUCT

de referência de

RegisterClass

UnregisterClass

WM_PAINT

WNDCLASSEX

classes de janela

WindowProc