Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1787 connectés 

  FORUM HardWare.fr
  Programmation
  C++

  Quelle fonction utiliser pour récupérer les coordonnées de la souris?

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Quelle fonction utiliser pour récupérer les coordonnées de la souris?

n°735839
gustifotz
Posté le 24-05-2004 à 11:51:01  profilanswer
 

Bonjour tout le monde,
J'ai un ch'tit problème pas très compliqué pour un développeur averti (mais je n'en suis pas un...  :cry: ) : Voilà, j'ai une image (bmp), je clique qqpart sur cette image, et je voudrais récupérer les coordonnées du point sur lequel j'ai cliqué, coordonnées en pixels de préférence. Quelle fonction faut-il que j'utilise pour cela? Merci d'avance.

mood
Publicité
Posté le 24-05-2004 à 11:51:01  profilanswer
 

n°735866
Carbon_14
Posté le 24-05-2004 à 12:10:23  profilanswer
 

En C, j'utilise l'API GetCursorPos(). Suite au message WM_LBUTTONDOWN (bouton gauche appuyé).
Cf http://msdn.microsoft.com/library/ [...] sorPos.asp
Les coordonnées sont celles de l'écran. Si l'image est sur une feuille, faut tenir compte de sa position (y a API ScreenToClient(), et ClientToScreen() pour faire calculs sur position de feuilles)
 
En C++, doit y avoir "mieux".

n°736019
Ace17
Posté le 24-05-2004 à 13:56:08  profilanswer
 

Carbon_14 a écrit :

j'utilise l'API GetCursorPos(). Suite au message WM_LBUTTONDOWN


La position de la souris n'est pas contenue dans le wparam ou dans le lparam au moment ou tu recois le message?

n°736029
Carbon_14
Posté le 24-05-2004 à 14:03:08  profilanswer
 

Il semblerait : D'après Krosoft :
Remarks
 
Use the following code to obtain the horizontal and vertical position:
 
xPos = GET_X_LPARAM(lParam);  
yPos = GET_Y_LPARAM(lParam);  
 
Va falloir que je "vire" tous mes GetCursorPos() de mes programmes....
Il sert surtout quand on ne clique pas (et sous Windows 3.11 car GET_X_LPARAM n'existait pas encore, on peut ss dte écrire une macro).


Message édité par Carbon_14 le 24-05-2004 à 14:04:33
n°736146
gustifotz
Posté le 24-05-2004 à 14:40:31  profilanswer
 

Ok merci, ca a l'air de tourner avec GetCursorPos, je récupère les coordonnées du point cliqué et je les stocke dans deux variables publiques m_iCoordX et m_iCoordY.  
Comment est-ce que je peux accéder au contenu de ces variables depuis n'importe quelle autre fonction de mon appli?? Pour le moment, j'ai un message d'erreur : error C2065: 'm_iCoordY' : undeclared identifier...  :??:

n°736238
Ace17
Posté le 24-05-2004 à 15:07:15  profilanswer
 

Avec des noms pareils, m_iCoordX et m_iCOordY m'ont tout l'air de faire partie d'une classe... Il te faut un pointeur ou une référence vers ton objet.

n°736262
gustifotz
Posté le 24-05-2004 à 15:19:30  profilanswer
 

En fait j'ai un truc comme ca :

Code :
  1. void CEssai3View::OnLButtonDown(UINT nFlags, CPoint point)
  2. {
  3. GetCursorPos (&point);
  4. m_iCoordX = point.x;
  5. m_iCoordY = point.y;
  6. CView::OnLButtonDown(nFlags, point);
  7. }


Et je voudrais pouvoir lire le contenu de m_iCoordX et m_iCoordY depuis n'importe quelle autre fonction de mon application. Ces deux variables sont déclarées comme publiques mais quand je les utilise, j'obtiens un message d'erreur du genre la variable n'est pas déclarée...  :??:

n°736359
Ace17
Posté le 24-05-2004 à 16:10:54  profilanswer
 

Bon, encore un....
Les variables m_iCoordX/Y sont membres de ta classe CEssai3View...  
Qu'est-ce que tu appelles "n'importe quelle autre fonction"? m_iCoordX/Y n'ont rien a voir avec des variables globales.

n°737591
gustifotz
Posté le 25-05-2004 à 13:17:03  profilanswer
 

Non effectivement, petit coup de barre :). J'ai résolu le problème, thx.

n°740641
Profil sup​primé
Posté le 26-05-2004 à 19:50:24  answer
 

A mon aivs le GetCursorPos n'est pas une bonne solution car la souris peut avoir bougé entre l'instant ou tu cliques et celui ou tu fais effectivement le GetCursorPos
La solution de Carbon 14 est la bonne


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  C++

  Quelle fonction utiliser pour récupérer les coordonnées de la souris?

 

Sujets relatifs
[HTML - Outlook] Récupérer un Rendez-vous ?"Redirection" en fonction de l'adresse tapée...[toujours pas résolu]
problème de pointeur sur fonctionUtiliser Pear db sur Free
récupérer un autre xml dans un xsl pour travailler sur 2 xml[Java] Récupérer un fichier sur un site et l'enregistrer localement ?
[RESOLU][SQL] Recuperer une donnee qui vient d'etre updaté[JS/HTML] récuperer les coordonnées d'un clic sur une image
[JavaScript] Peut-on récupérer l'URL correspondante à history.go(-2) 
Plus de sujets relatifs à : Quelle fonction utiliser pour récupérer les coordonnées de la souris?


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR