2008-09-01 10 views
0

J'ai besoin de créer un contrôle de bouton quick-n-dirty 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. Parce que le bouton lui-même ne bouge pas, j'ai besoin de continuer à suivre le mouvement de la souris en dehors du rectangle du contrôle.Comment implémenter le déplacement de la souris dans Visual Basic?

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

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

Répondre

0

Vous avez besoin du contrôle pour gérer trois événements: la souris, le déplacement de la souris et la souris. Sur 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 a 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é déplacée par la souris. Dans l'événement de souris, relâchez la capture si l'entrée est capturée. La suggestion de boolean jjnguy est inutile 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.

0

Votre problème consistera à déterminer quelle image bitmap vous devez afficher en fonction des coordonnées de la souris dans l'événement mouse_move. Vous devrez effectuer un peu de magie pour transformer les coordonnées et trouver une valeur que vous pouvez utiliser pour choisir la bonne image.

Cela ne semble pas trop compliqué, juste un peu d'essai et d'erreur dans les maths. Skizz vous a déjà montré comment capturer les événements.

Questions connexes