Quelle fonction utiliser pour récupérer les coordonnées de la souris? - C++ - Programmation
Marsh Posté le 24-05-2004 à 12:10:23
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".
Marsh Posté le 24-05-2004 à 13:56:08
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?
Marsh Posté le 24-05-2004 à 14:03:08
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).
Marsh Posté le 24-05-2004 à 14:40:31
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...
Marsh Posté le 24-05-2004 à 15:07:15
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.
Marsh Posté le 24-05-2004 à 15:19:30
En fait j'ai un truc comme ca :
Code :
|
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...
Marsh Posté le 24-05-2004 à 16:10:54
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.
Marsh Posté le 25-05-2004 à 13:17:03
Non effectivement, petit coup de barre . J'ai résolu le problème, thx.
Marsh Posté le 26-05-2004 à 19:50:24
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
Marsh Posté le 24-05-2004 à 11:51:01
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... ) : 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.