Modifier les couleurs du contrôle progressbar

Contenu du snippet

Microsoft nous fournit dans son groupe de contrôles COMCTL32.OCX un contrôle nommé ProgressBar. Outil bien intéressant, toutefois, Microsoft a oublié (une fois de plus) de nous fournir la possiblité de changer la couleur de fond ainsi que la couleur des barres pour ce contrôle. Quelle utilité me direz-vous ? Pour ceux qui aiment créer des interfaces autres qu'avec les couleurs du système, il peut être contraignant de devoir se satisfaire de la couleur par défaut du ProgressBar. Imaginez un superbe fond pastel dans votre formulaire avec une ProgressBar aux couleurs austères... Voici la solution pour pallier ce problème:

Source / Exemple :


'*****DECLARATION API SENDMESSAGE*****
Private Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Integer, ByVal lParam As Any) As Long

'*****CONSTANTES******
Public Const CCM_FIRST = &H2000
Public Const CCM_SETBKCOLOR = (CCM_FIRST + 1)
Public Const PBM_SETBKCOLOR = CCM_SETBKCOLOR
Public Const WM_USER = &H400
Public Const PBM_SETBARCOLOR = (WM_USER + 9)

'*****Utilisation de SendMessage
'*****pour changer la couleur de fond,
'*****dans ce cas-ci en rouge (VbRed)
SendMessage VotreProgressBar.hwnd, PBM_SETBKCOLOR, 0, ByVal vbRed

'*****Utilisation de SendMessage
'*****pour changer la couleur des barres,
'*****dans ce cas-ci en blanc (VbWhite)
SendMessage VotreProgressBar.hwnd, PBM_SETBARCOLOR, 0, ByVal VbWhite

Conclusion :


La fonction API SendMessage nous permet d'envoyer à Windows un message en rapport à un objet.
De cet fait, nous pouvons attribuer des nouvelles valeurs à cet objet. Dans notre cas, nous changeons les valeurs BackColor et BarColor du ProgressBar.

A voir également

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.