Função SetClassLongA (winuser.h)

Substitui o valor especificado de 32 bits (longo) no deslocamento especificado na memória de classe extra ou na estrutura WNDCLASSEX da classe à qual a janela especificada pertence.

Nota Essa função foi substituída pela função SetClassLongPtr . Para escrever código compatível com versões de 32 bits e 64 bits do Windows, use SetClassLongPtr.
 

Sintaxe

DWORD SetClassLongA(
  [in] HWND hWnd,
  [in] int  nIndex,
  [in] LONG dwNewLong
);

Parâmetros

[in] hWnd

Digite: HWND

Um identificador para a janela e, indiretamente, a classe à qual a janela pertence.

[in] nIndex

Tipo: int

O valor a ser substituído. Para definir um valor de 32 bits na memória de classe extra, especifique o deslocamento de bytes positivo baseado em zero do valor a ser definido. Os valores válidos estão no intervalo zero até o número de bytes de memória de classe extra, menos quatro; por exemplo, se você especificasse 12 ou mais bytes de memória de classe extra, um valor de 8 seria um índice para o terceiro inteiro de 32 bits. Para definir qualquer outro valor da estrutura WNDCLASSEX , especifique um dos valores a seguir.

Valor Significado
GCL_CBCLSEXTRA
-20
Define o tamanho, em bytes, da memória extra associada à classe . Definir esse valor não altera o número de bytes extras já alocados.
GCL_CBWNDEXTRA
-18
Define o tamanho, em bytes, da memória de janela extra associada a cada janela na classe . Definir esse valor não altera o número de bytes extras já alocados. Para obter informações sobre como acessar essa memória, consulte SetWindowLong.
GCL_HBRBACKGROUND
-10
Substitui um identificador para o pincel de plano de fundo associado à classe .
GCL_HCURSOR
-12
Substitui um identificador para o cursor associado à classe .
GCL_HICON
-14
Substitui um identificador para o ícone associado à classe .
GCL_HICONSM
-34
Substitua um identificador para o ícone pequeno associado à classe .
GCL_HMODULE
-16
Substitui um identificador para o módulo que registrou a classe .
GCL_MENUNAME
-8
Substitui o endereço da cadeia de caracteres do nome do menu. A cadeia de caracteres identifica o recurso de menu associado à classe .
GCL_STYLE
-26
Substitui os bits de estilo da classe de janela.
GCL_WNDPROC
-24
Substitui o endereço do procedimento de janela associado à classe .

[in] dwNewLong

Tipo: LONG

O valor de substituição.

Valor retornado

Tipo: DWORD

Se a função for bem-sucedida, o valor retornado será o valor anterior do inteiro de 32 bits especificado. Se o valor não tiver sido definido anteriormente, o valor retornado será zero.

Se a função falhar, o valor retornado será zero. Para obter informações de erro estendidas, chame GetLastError.

Comentários

Se você usar a função SetClassLong e o índice GCL_WNDPROC para substituir o procedimento de janela, o procedimento de janela deverá estar em conformidade com as diretrizes especificadas na descrição da função de retorno de chamada WindowProc .

Chamar SetClassLong com o índice GCL_WNDPROC cria uma subclasse da classe de janela que afeta todas as janelas criadas posteriormente com a classe . Um aplicativo pode subclasse de uma classe do sistema, mas não deve subclasse uma classe de janela criada por outro processo.

Reserve memória de classe extra especificando um valor diferente de zero no membro cbClsExtra da estrutura WNDCLASSEX usada com a função RegisterClassEx .

Use a função SetClassLong com cuidado. Por exemplo, é possível alterar a cor da tela de fundo de uma classe usando SetClassLong, mas essa alteração não repinta imediatamente todas as janelas que pertencem à classe .

Exemplos

Para obter um exemplo, consulte Exibindo um ícone.

Observação

O cabeçalho winuser.h define SetClassLong 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]
Plataforma de Destino Windows
Cabeçalho winuser.h (inclua Windows.h)
Biblioteca User32.lib
DLL User32.dll
Conjunto de APIs ext-ms-win-ntuser-windowclass-l1-1-2 (introduzido no Windows 10, versão 10.0.10240)

Confira também

Conceitual

GetClassLong

Referência

Registerclassex

SetClassLongPtr

Setwindowlong

WNDCLASSEX

Classes de janela

WindowProc