Partager via


Fonction SetWindowSubclass (commctrl.h)

Installe ou met à jour un rappel de sous-classe de fenêtre.

Syntaxe

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

Paramètres

[in] hWnd

Type : HWND

Handle de la fenêtre en cours de sous-classe.

[in] pfnSubclass

Type : SUBCLASSPROC

Pointeur vers une procédure de fenêtre. Ce pointeur et l’ID de sous-classe identifient de manière unique ce rappel de sous-classe. Pour le prototype de fonction de rappel, consultez SUBCLASSPROC.

[in] uIdSubclass

Type : UINT_PTR

ID de sous-classe. Cet ID et la procédure de sous-classe identifient une sous-classe de manière unique. Pour supprimer une sous-classe, transmettez la procédure de sous-classe et cette valeur à la fonction RemoveWindowSubclass . Cette valeur est passée à la procédure de sous-classe dans le paramètre uIdSubclass.

[in] dwRefData

Type : DWORD_PTR

DWORD_PTR de référencer des données. La signification de cette valeur est déterminée par l’application appelante. Cette valeur est passée à la procédure de sous-classe dans le paramètre dwRefData. Un dwRefData différent est associé à chaque combinaison de handle de fenêtre, de procédure de sous-classe et d’uIdSubclass.

Valeur retournée

Type : BOOL

TRUE si le rappel de sous-classe a été correctement installé ; sinon, FALSE.

Remarques

Les rappels de sous-classe sont identifiés par la combinaison de l’adresse de rappel et de l’ID de sous-classe défini par l’appelant. Si l’adresse de rappel et la paire ID n’ont pas encore été installées, cette fonction installe la sous-classe. Si la paire a déjà été installée, cette fonction met simplement à jour les données de référence.

Chaque rappel peut stocker une seule DWORD_PTR de données de référence, qui est passée à la fonction de rappel lorsqu’elle est appelée pour filtrer les messages. Aucun comptage de référence n’est effectué pour le rappel ; il peut appeler à plusieurs reprises SetWindowSubclass pour modifier la valeur de son élément de données de référence.

Avertissement Vous ne pouvez pas utiliser les fonctions d’assistance de sous-classification pour sous-classer une fenêtre sur plusieurs threads.
 

Configuration requise

Condition requise Valeur
Client minimal pris en charge Windows XP [applications de bureau uniquement]
Serveur minimal pris en charge Windows Server 2003 [applications de bureau uniquement]
Plateforme cible Windows
En-tête commctrl.h
Bibliothèque Comctl32.lib
DLL Comctl32.dll (version 5.8 ou ultérieure)
Ensemble d’API ext-ms-win-shell-comctl32-window-l1-1-0 (introduit dans Windows 10, version 10.0.14393)

Voir aussi

DefSubclassProc

GetWindowSubclass

RemoveWindowSubclass