Trackbar personnalisé

Description

Le manque de souplesse du TrackBar livré avec Visual Studio,
m'a conduit à écrire mon propre contrôle personnalisé.

Il existe d'autres contrôles de ce type, ici ou là sur le Net,
mais je vous propose ici une adaptation du contôle que j'utilise avec des applications multimédia.

Le contrôle est décliné en 2 versions : XP et VISTA.

Affichage sans scintillement:
J'utilise la technique du "double buffer" via un bitmap mémoire (cf offScreenBmp),
couplée avec les méthodes ControlDrawingDisable et ControlDrawingEnable (cf WM_SETREDRAW),
en outre tous les éléments du contrôle sont dessinés en une seule fois,
lors du traitement du message WM_ERASEBKGND (cf WndProc).

Notification des événements:
Celle-ci peut se faire, soit par l'utilisation du EventHandler ValueChanged (en mode DotNET),
soit via le message WM_COMMAND envoyé directement à la fenêtre parent (en mode Win32).

Apparence du contrôle:
Celle-ci dépend des propriétés Minimum et Maximum.
Pour inverser l'affichage il suffit de permuter les valeurs correspondantes.

Orientation du contrôle:
La détermination est automatique, elle se fait de la façon suivante :
Largeur > Hauteur = Horizontal.
Hauteur > Largeur = Vertical.

Tooltip:
La valeur retournée par le contrôle est affichée dans un tooltip lorsque la souris survole le curseur.

Conclusion :


La liste complète de mes contributions se trouve dans la section "C# corner" sur :
www.zapsolution.com

Patrice Terrier

Codes Sources

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.