Connaitre position de la souris à chaque déplacement
maxinfos
Messages postés33Date d'inscriptionmercredi 6 novembre 2002StatutMembreDernière intervention16 juin 2008
-
29 nov. 2003 à 12:33
cs_neodante
Messages postés2835Date d'inscriptionlundi 11 août 2003StatutModérateurDernière intervention16 décembre 2006
-
29 nov. 2003 à 14:53
Bonjour
je voudrais savoir comment récupérer la position de la souris à chaque instant, lors de son déplacement. (merci d'être précis, je suis débutant en C++).
cs_neodante
Messages postés2835Date d'inscriptionlundi 11 août 2003StatutModérateurDernière intervention16 décembre 200611 29 nov. 2003 à 13:01
:big) Neodante :big)
Voici l'API pour Windows ... :
typedef struct POINTAPI{
X As Long
Y As Long
};
-> Lib "user32"
// prototype
Long GetCursorPos (POINTAPI* lpPoint)
// Retourne la position du curseur de la souris dans une variable déclarée de type POINTAPI ...
psykocrash
Messages postés240Date d'inscriptionvendredi 14 juin 2002StatutMembreDernière intervention17 mars 2009 29 nov. 2003 à 13:05
En fait c'est très simple, car il y a une API qui te renvoit la position de la souris.
Cette API, c'est GetCursorPos. Tu doit lui passer en paramètre une variable de type POINTAPI :
struct POINTAPI{
int x;
int y;
};
(Pour la structure je ne suis pas sur à 100%)
Bref, tu inclu l'en-tête windows.h, tu déclare une variable de type POINTAPI, et tu invoque la fonction GetCursorPos avec en paramètre ta variable.
Cette fonction placera dans variable.x la position X de la souris, et dans variable.y la position Y de la souris.
Pour avoir continuellement la position de la souris, tu déclare deux variable POINTAPI, etfait une boucle infinie while (1) par exemple. A chaque boucle, tu met dans la deuxième variable les positions et tu compare les deux variables. Si elles sont identiques, tu pase, sinon tu enregistre la nouvelle position et tu passe dans la premiere variable les nouvelles positions.
Sa resemblera à sa :
POINTAPI LastPos;
POINTAPI CurrentPos;
while (1) {
// invocation de GetCursorPos avec en paramètre CurrentPos
if (CurrentPos.x!=LastPos.x || CurrentPos.y!=LastPos.y) {
print("Position X : %i\tPosition Y : %i\n", CurrentPos.x, CurrentPos.y);
LastPos.x=CurrentPos.x;
LastPos.y=CurrentPos.y;
}
Je ne peut pas te donner un code en entier parsque je ne me souvient plus de la syntaxe d'invocation de GetCursorPos, désolé :o)