Question

J'ai besoin de créer un contrôle de bouton rapide et sale dans Visual Basic 2005 Express, dont la valeur est incrémentée/décrémentée en le "saisissant" avec la souris et en déplaçant le curseur vers le haut/bas.Étant donné que le bouton lui-même ne bouge pas, je dois continuer à suivre le mouvement de la souris en dehors du rectangle du contrôle.

J'utilise un Label avec un ImageList pour implémenter cela (j'ai une liste de 127 bitmaps représentant le bouton dans différentes positions).

À quels événements dois-je réagir ?

Était-ce utile?

La solution

Vous avez besoin du contrôle pour gérer trois événements :Souris vers le bas, déplacement de la souris et souris vers le haut.Lors de l’événement Mouse Down, vous devrez capturer la souris.Cela signifie que les messages de la souris sont envoyés au contrôle qui effectue la capture.Dans l'événement de déplacement de la souris, si l'entrée est capturée, mettez à jour l'image affichée en fonction de la quantité de déplacement de la souris.Dans l'événement souris levée, relâchez la capture si l'entrée est capturée.

Le booléen jjnguy suggère qu'il n'est pas nécessaire car la propriété Capture d'un contrôle est lisible, il est donc possible de déterminer si la capture a été définie.

Autres conseils

Votre problème sera de déterminer quel bitmap vous devez afficher en fonction des coordonnées signalées par la souris dans l'événement mouse_move.Vous devrez faire preuve de magie pour transformer les coordonnées et trouver une valeur que vous pourrez utiliser pour choisir la bonne image.

Cela ne semble pas trop compliqué, juste quelques essais et erreurs en mathématiques.Skizz vous a déjà montré comment capturer les événements.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top