Compartilhar via


Função SetClassLongPtrA (winuser.h)

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

Observação Para escrever um código compatível com o Windows de 32 bits e 64 bits, use SetClassLongPtr. Ao compilar para o Windows de 32 bits, SetClassLongPtr é definido como uma chamada para a função SetClassLong

 

Sintaxe

ULONG_PTR SetClassLongPtrA(
  [in] HWND     hWnd,
  [in] int      nIndex,
  [in] LONG_PTR dwNewLong
);

Parâmetros

[in] hWnd

Tipo: 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 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 oito; por exemplo, se você especificou 24 ou mais bytes de memória de classe extra, um valor de 16 seria um índice para o terceiro inteiro. Para definir um valor diferente da estrutura de 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 da 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 SetWindowLongPtr.
GCLP_ HBRBACKGROUND
-10
Substitui um identificador para o pincel de plano de fundo associado à classe.
GCLP_HCURSOR
-12
Substitui um identificador para o cursor associado à classe.
GCLP_HICON
-14
Substitui um identificador para o ícone associado à classe.
GCLP_HICONSM
-34
Recupera um identificador para o ícone pequeno associado à classe.
GCLP_HMODULE
-16
Substitui um identificador para o módulo que registrou a classe.
GCLP_MENUNAME
-8
Substitui o ponteiro para a cadeia de caracteres de 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.
GCLP_WNDPROC
-24
Substitui o ponteiro para o procedimento de janela associado à classe.

[in] dwNewLong

Tipo: LONG_PTR

O valor de substituição.

Valor de retorno

Tipo: ULONG_PTR

Se a função for bem-sucedida, o valor retornado será o valor anterior do deslocamento especificado. Se isso 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.

Observações

Se você usar a função SetClassLongPtr e o índice GCLP_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 SetClassLongPtr com o índice GCLP_WNDPROC cria uma subclasse da classe de janela que afeta todas as janelas criadas posteriormente com a classe. Um aplicativo pode subclasse 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 de WNDCLASSEX usada com a função RegisterClassEx.

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

Nota

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

Consulte também

Conceitual

GetClassLongPtr

de referência de

RegisterClassEx

setWindowLongPtr

WNDCLASSEX

classes de janela

WindowProc