Modifier les couleurs du contrôle progressbar

Soyez le premier à donner votre avis sur cette source.

Snippet vu 7 878 fois - Téléchargée 57 fois

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

Ajouter un commentaire

Commentaires

zakariabamou
Messages postés
30
Date d'inscription
mercredi 16 décembre 2009
Statut
Membre
Dernière intervention
24 août 2012
-
Bonjour

Y a t'il un équivalent de ces commandes en C# NET 2008 ?
merci d'avance
Neo.balastik
Messages postés
797
Date d'inscription
jeudi 17 mai 2001
Statut
Membre
Dernière intervention
5 mai 2009
4 -
Salut,

"SendMessage" est aussi utilisable en VB.NET.
L'utilisation doit être plus ou moins similaire à VB6.
cs_bidouille007
Messages postés
263
Date d'inscription
jeudi 11 septembre 2008
Statut
Membre
Dernière intervention
22 décembre 2012
1 -
Bonjour

Y a t'il un équivalent de ces commandes pour un projet sous VB NET 2008 ? d'avance merci
ritchy01
Messages postés
42
Date d'inscription
mardi 16 septembre 2003
Statut
Membre
Dernière intervention
20 décembre 2009
-
Au fait.... 10/10 :)
ritchy01
Messages postés
42
Date d'inscription
mardi 16 septembre 2003
Statut
Membre
Dernière intervention
20 décembre 2009
-
Rapide, efficace....Merci et bravo !

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.