Trackbar personnalisé

Soyez le premier à donner votre avis sur cette source.

Vue 14 763 fois - Téléchargée 1 213 fois

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

Ajouter un commentaire Commentaires
Messages postés
475
Date d'inscription
jeudi 19 juin 2003
Statut
Membre
Dernière intervention
3 novembre 2008
1
Sacré Zap, t'es une ressource à toi seul.
Ça sera super si tu te mettais à WPF (Windows Presentation Foundation). Avec ton sens artistique, ça va déchirer :)
Messages postés
5487
Date d'inscription
dimanche 4 août 2002
Statut
Modérateur
Dernière intervention
20 juin 2013
58
Bon rendu final, UserControl réutilisable et utile.
Bon travail!

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.