Vous savez peut-être déjà comment gérer certains événements de souris de base comme MouseUp / MouseDown et MouseMove. Cependant, il y a des moments où vous voulez que votre souris fasse ce que vous lui dites.
Beaucoup d'entre nous écrivent des programmes conçus pour fonctionner uniquement avec la souris. Si nous écrivons des programmes qui nécessitent la présence de la souris et / ou dépendent de la souris, nous devons nous assurer que diverses choses sont configurées correctement.
Le moyen le plus rapide de voir si la souris est présente:
Voici comment utiliser les curseurs animés (ou même comment utiliser un BMP comme CUR):
La fonction API SetCursorPos déplace le curseur sur les coordonnées d'écran spécifiées. Étant donné que cette fonction n'obtient pas de descripteur Windows en tant que paramètre, x / y doivent être des coordonnées d'écran. Votre composant utilise des coordonnées relatives, par exemple par rapport à un TForm. Vous devez utiliser la fonction ClientToScreen pour calculer les coordonnées d'écran appropriées.
Dans la plupart des cas, nous voulons que la souris se déplace vers une certaine position sur l'écran. Nous savons que certains composants ne répondent pas à un changement de curseur jusqu'à ce que l'utilisateur déplace la souris, nous devons fournir une petite technique de déplacement à partir du code. Et qu'en est-il des clics de souris de simulation sans appeler le gestionnaire d'événements OnClick?
L'exemple suivant simule l'événement de clic de souris sur Button2 après le clic sur Button1. Nous devons utiliser l'appel API mouse_event (). La fonction mouse_event synthétise le mouvement de la souris et les clics sur les boutons. Les coordonnées de la souris données sont en "Mickeys", où il y a 65535 "Mickeys" à la largeur d'un écran.
En utilisant la fonction ClipCursor de l'API Windows, il est possible de restreindre le mouvement de la souris à une zone rectangulaire spécifique sur l'écran:
Détecter l'entrée et la sortie du pointeur de la souris sur un composant revient souvent lors de l'écriture de votre propre composant. Tous les descendants de TComponent envoient un message CM_MOUSEENTER et CM_MOUSELEAVE lorsque la souris entre et sort des limites du composant. Vous devrez écrire un gestionnaire de messages pour les messages respectifs si nous souhaitons y répondre.