Coordonées d'un click de souris - API Windows [Résolu]

Signaler
Messages postés
302
Date d'inscription
lundi 11 avril 2005
Statut
Membre
Dernière intervention
22 avril 2006
-
Messages postés
302
Date d'inscription
lundi 11 avril 2005
Statut
Membre
Dernière intervention
22 avril 2006
-
j'arrive pas à les récupérer , j'ai pourtant fait point.x et point.y rien à faire j'obtient 0 ... et même avec ClientToScreen

10 réponses

Messages postés
231
Date d'inscription
mercredi 12 février 2003
Statut
Membre
Dernière intervention
7 juillet 2009

Ca devrait pas être plutôt:

POINT click;
GetCursorPos(&click);
posX = click.x;

posY = click.y;



car dans "click.x = posX", c'est click.x qui prend la valeur de posX, ce qui est complétement irrégulier !
Messages postés
6535
Date d'inscription
lundi 16 décembre 2002
Statut
Modérateur
Dernière intervention
22 août 2010
8
A savoir que tout cela est inutile, le point du clic est déja présent dans lParam
Messages postés
6535
Date d'inscription
lundi 16 décembre 2002
Statut
Modérateur
Dernière intervention
22 août 2010
8
Je t'ai dit de regarder dans LPARAM: LOWORD(lParam) te donne x et
HIWORD(lParam) y. Ca te donne des coordonnées client (par rapport au
coin eu haut à gauche, c'est bien ce que tu veux?)
Messages postés
231
Date d'inscription
mercredi 12 février 2003
Statut
Membre
Dernière intervention
7 juillet 2009

POINT coords;

GetCursorPos(&coords);
Messages postés
302
Date d'inscription
lundi 11 avril 2005
Statut
Membre
Dernière intervention
22 avril 2006

raaah !! ça marche pas !

<hr size="2" width="100%">POINT click;

GetCursorPos(&click);

click.x=posX;

click.y=posY;



char txt[50]; //Test de vérification

itoa(posX,txt,10);

MessageBox(hWnd,txt,"Test",MB_OK); // 0 !!
Messages postés
1787
Date d'inscription
lundi 22 novembre 2004
Statut
Membre
Dernière intervention
31 janvier 2009
2
Avec au début de ta procédure :

POINT Pt;

static
char *Txt;

Au Message WM_CREATE:
Txt = new char[128];

et au message WM_DESTROY:
delete[] Txt;

et pour finir au Message :

WM_LBUTTONDOWN:
WM_RBUTTONDOWN:
GetCursorPos(&Pt);
ScreenToClient(hWnd, &Pt);
wsprintf(Txt, "Coordonnées : \nx = %i - y = %i", Pt.x, Pt.y);
MessageBox(hWnd, Txt, szClassName, MB_ICONEXCLAMATION);


void Aurevoir( void ); //Bonne journée
Messages postés
302
Date d'inscription
lundi 11 avril 2005
Statut
Membre
Dernière intervention
22 avril 2006

merci je regarde ça tout de suite !
Messages postés
302
Date d'inscription
lundi 11 avril 2005
Statut
Membre
Dernière intervention
22 avril 2006

Hades53 désolé j'avais pas vu ta réponse ! oui c'est ça j'ai fait juste une étourderie !! pff vraiment parfois ...





désolé pour la topic inutile !
Messages postés
302
Date d'inscription
lundi 11 avril 2005
Statut
Membre
Dernière intervention
22 avril 2006

dites j'ai un problème là encore : j'obtien pas vraiment les bonnes
valeurs de x et y , ça me fait des valeurs élevées qui tournent autours
de 300 à 500 même quand je clique par exemple là où normalement ça
devrait fire 5,2 ... bref du n'importe quoi !

je suppose qu'il doit y avoir une valeur à soustraire pour
obtenir la vraie puisque quand je clique 2 fois de suite bah ça donne
la même chose !
Messages postés
302
Date d'inscription
lundi 11 avril 2005
Statut
Membre
Dernière intervention
22 avril 2006

ah.............................





j'avais pas capté ce petit detail ... ok ok ok !

donc les valeurs "bizarres" que j'obtenais bah c'était depuis en haut à gauche de l'écran et pas de la zone client !



oki merci beaucoup ! ^^



++++