cs_Trappiste
Messages postés6Date d'inscriptionsamedi 23 août 2003StatutMembreDernière intervention25 août 2005
-
23 août 2005 à 14:56
PCPT
Messages postés13272Date d'inscriptionlundi 13 décembre 2004StatutMembreDernière intervention 3 février 2018
-
23 août 2005 à 15:33
Bonjour.
Pour mon application, j'aimerai changer la couleur de fond d'un HScroll lorsque l'utilisateur sélectionne une certaine plage.
Comme la propriété backcolor n'existe pas, je dois utiliser la fontion API SendMessage dont la déclaration est la suivante :
Private Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long
L'appel devrait ressembler à ceci :
SendMessage HScroll1.hwnd,HSM_Bkcolor,0,ByVal RGB(red,green,blue)
Le problème est que je ne connais pas la constante HSM_Bkcolor à passer en paramètre !
Quelqu'un pourrait-il m'aider ? Merci.
BruNews
Messages postés21040Date d'inscriptionjeudi 23 janvier 2003StatutModérateurDernière intervention21 août 2019 23 août 2005 à 15:18
Je ne sais pas si vous avez une méthode pour le faire en vb mais en API pas du tout comme tu les dis.
Il faut intercepter le message WM_CTLCOLORSCROLLBAR envoyé par le system a la fenêtre mère (contenant la scrollbar).
cs_Trappiste
Messages postés6Date d'inscriptionsamedi 23 août 2003StatutMembreDernière intervention25 août 2005 23 août 2005 à 15:29
Merci pour votre réponse très rapide.
Disons que j'ai testé SendMessage qui fonctionne à merveille avec les contrôles pour lesquels je connais la valeur du paramètre wMsg.
Je ne sais pas quel est le nom générique de la constante pour une HScroll.
Si le paramètre est appelé WM_CTLCOLORSCROLLBAR, quelle est sa valeur ?