Função SetWindowSubclass (commctrl.h)

Instala ou atualiza um retorno de chamada de subclasse de janela.

Sintaxe

BOOL SetWindowSubclass(
  [in] HWND         hWnd,
  [in] SUBCLASSPROC pfnSubclass,
  [in] UINT_PTR     uIdSubclass,
  [in] DWORD_PTR    dwRefData
);

Parâmetros

[in] hWnd

Digite: HWND

O identificador da janela que está sendo subclasse.

[in] pfnSubclass

Tipo: SUBCLASSPROC

Um ponteiro para um procedimento de janela. Esse ponteiro e a ID da subclasse identificam exclusivamente esse retorno de chamada de subclasse. Para obter o protótipo da função de retorno de chamada, consulte SUBCLASSPROC.

[in] uIdSubclass

Tipo: UINT_PTR

A ID da subclasse. Essa ID junto com o procedimento de subclasse identifica exclusivamente uma subclasse. Para remover uma subclasse, passe o procedimento de subclasse e esse valor para a função RemoveWindowSubclass . Esse valor é passado para o procedimento de subclasse no parâmetro uIdSubclass.

[in] dwRefData

Tipo: DWORD_PTR

DWORD_PTR para referenciar dados. O significado desse valor é determinado pelo aplicativo de chamada. Esse valor é passado para o procedimento de subclasse no parâmetro dwRefData. Um dwRefData diferente está associado a cada combinação de identificador de janela, procedimento de subclasse e uIdSubclass.

Retornar valor

Tipo: BOOL

TRUE se o retorno de chamada de subclasse foi instalado com êxito; caso contrário, FALSE.

Comentários

Os retornos de chamada de subclasse são identificados pela combinação do endereço de retorno de chamada e da ID de subclasse definida pelo chamador. Se o endereço de retorno de chamada e o par de ID ainda não tiverem sido instalados, essa função instalará a subclasse. Se o par já tiver sido instalado, essa função apenas atualizará os dados de referência.

Cada retorno de chamada pode armazenar uma única DWORD_PTR de dados de referência, que é passada para a função de retorno de chamada quando é chamada para filtrar mensagens. Nenhuma contagem de referência é executada para o retorno de chamada; ele pode chamar SetWindowSubclass repetidamente para alterar o valor de seu elemento de dados de referência.

Aviso Você não pode usar as funções auxiliares de subclasse para subclasse de uma janela entre threads.
 

Requisitos

Requisito Valor
Cliente mínimo com suporte Windows XP [somente aplicativos da área de trabalho]
Servidor mínimo com suporte Windows Server 2003 [somente aplicativos da área de trabalho]
Plataforma de Destino Windows
Cabeçalho commctrl.h
Biblioteca Comctl32.lib
DLL Comctl32.dll (versão 5.8 ou posterior)
Conjunto de APIs ext-ms-win-shell-comctl32-window-l1-1-0 (introduzido no Windows 10, versão 10.0.14393)

Confira também

DefSubclassProc

GetWindowSubclass

RemoveWindowSubclass