Fonction SetClassLongW (winuser.h)
Remplace la valeur 32 bits (long) spécifiée au décalage spécifié dans la mémoire de classe supplémentaire ou la structure WNDCLASSEX de la classe à laquelle appartient la fenêtre spécifiée.
Syntaxe
DWORD SetClassLongW(
[in] HWND hWnd,
[in] int nIndex,
[in] LONG dwNewLong
);
Paramètres
[in] hWnd
Type : HWND
Handle de la fenêtre et, indirectement, de la classe à laquelle la fenêtre appartient.
[in] nIndex
Type : int
Valeur à remplacer. Pour définir une valeur 32 bits dans la mémoire de classe supplémentaire, spécifiez le décalage d’octet de base zéro positif de la valeur à définir. Les valeurs valides sont comprises entre zéro et le nombre d’octets de mémoire de classe supplémentaire, moins quatre ; par exemple, si vous avez spécifié 12 octets ou plus de mémoire de classe supplémentaire, la valeur 8 est un index du troisième entier 32 bits. Pour définir une autre valeur à partir de la structure WNDCLASSEX , spécifiez l’une des valeurs suivantes.
Valeur | Signification |
---|---|
|
Définit la taille, en octets, de la mémoire supplémentaire associée à la classe . La définition de cette valeur ne modifie pas le nombre d’octets supplémentaires déjà alloués. |
|
Définit la taille, en octets, de la mémoire de fenêtre supplémentaire associée à chaque fenêtre de la classe. La définition de cette valeur ne modifie pas le nombre d’octets supplémentaires déjà alloués. Pour plus d’informations sur l’accès à cette mémoire, consultez SetWindowLong. |
|
Remplace une poignée au pinceau d’arrière-plan associé à la classe . |
|
Remplace un handle au curseur associé à la classe . |
|
Remplace un handle à l’icône associée à la classe . |
|
Remplacez un handle par la petite icône associée à la classe . |
|
Remplace un handle au module qui a inscrit la classe . |
|
Remplace l’adresse de la chaîne de nom de menu. La chaîne identifie la ressource de menu associée à la classe . |
|
Remplace les bits de style de classe de fenêtre. |
|
Remplace l’adresse de la procédure de fenêtre associée à la classe . |
[in] dwNewLong
Type : LONG
Valeur de remplacement.
Valeur retournée
Type : DWORD
Si la fonction réussit, la valeur de retour est la valeur précédente de l’entier 32 bits spécifié. Si la valeur n’a pas été définie précédemment, la valeur de retour est zéro.
Si la fonction échoue, la valeur de retour est égale à zéro. Pour obtenir des informations détaillées sur l’erreur, appelez GetLastError.
Remarques
Si vous utilisez la fonction SetClassLong et l’index GCL_WNDPROC pour remplacer la procédure window, la procédure de fenêtre doit être conforme aux instructions spécifiées dans la description de la fonction de rappel WindowProc .
L’appel de SetClassLong avec l’index GCL_WNDPROC crée une sous-classe de la classe window qui affecte toutes les fenêtres créées ultérieurement avec la classe . Une application peut sous-classer une classe système, mais ne doit pas sous-classer une classe window créée par un autre processus.
Réservez une mémoire de classe supplémentaire en spécifiant une valeur différente de zéro dans le membre cbClsExtra de la structure WNDCLASSEX utilisée avec la fonction RegisterClassEx .
Utilisez la fonction SetClassLong avec soin. Par exemple, il est possible de modifier la couleur d’arrière-plan d’une classe à l’aide de SetClassLong, mais cette modification ne repeint pas immédiatement toutes les fenêtres appartenant à la classe.
Exemples
Pour obtenir un exemple, consultez Affichage d’une icône.
Notes
L’en-tête winuser.h définit SetClassLong comme un alias qui sélectionne automatiquement la version ANSI ou Unicode de cette fonction en fonction de la définition de la constante de préprocesseur UNICODE. Le mélange de l’utilisation de l’alias neutre en encodage avec du code qui n’est pas neutre en encodage peut entraîner des incompatibilités qui entraînent des erreurs de compilation ou d’exécution. Pour plus d’informations, consultez Conventions pour les prototypes de fonction.
Configuration requise
Condition requise | Valeur |
---|---|
Client minimal pris en charge | Windows 2000 Professionnel [applications de bureau uniquement] |
Serveur minimal pris en charge | Windows 2000 Server [applications de bureau uniquement] |
Plateforme cible | Windows |
En-tête | winuser.h (inclure Windows.h) |
Bibliothèque | User32.lib |
DLL | User32.dll |
Ensemble d’API | ext-ms-win-ntuser-windowclass-l1-1-2 (introduit dans Windows 10, version 10.0.10240) |
Voir aussi
Conceptuel
Référence