Cette réponse est la bonne, car il vous indique où la souris est lorsque l'utilisateur clique dessus, au lieu d'où il est lors du traitement du message (c'est peut-être déplacé).
Vous pouvez appeler GetMouseMovePointsEx pour obtenir la position de la souris et de l'histoire. Sinon, si vous avez accès à votre wndproc, vous pouvez simplement vérifier le lparam de WM_MOUSEMOVE, WM_LBUTTONDOWN ou un message similaire pour les coordonnées x,y.
Ce travail lors de la DPI est fait dans windows 7 ou windows 10. Par exemple, si le premier DPI valeur est de 150%, et ensuite, on est à 100%, cette méthode fonctionne encore? Je suis confronté à un problème dans une application, que ce n'est pas de travail. Tout fonctionne bien quand je me connecte, et connectez-vous à nouveau.
POINT p;//You can use this to store the values of x and y coordinates
Maintenant, en supposant que vous allez gérer cela en cliquant sur le bouton gauche de la souris
case WM_LBUTTONDOWN:
p.x = LOWORD(lParam);//X coordinate
p.y = HIWORD(lParam);//Y coordinate/* the rest of your code */break;
Remarques à partir de MSDN WM_LBUTTONDOWN: Ne pas utiliser le LOWORD ou HIWORD macros pour extraire les x et y les coordonnées de la position du curseur parce que ces macros retourner des résultats incorrects sur les systèmes avec plusieurs moniteurs. Les systèmes avec plusieurs moniteurs peuvent avoir des répercussions négatives x et y les coordonnées et LOWORD et HIWORD traiter les coordonnées non signés quantités. je ne le savais pas, il est encore utilisé dans certains des exemples sur le site web MSDN (j'.e msdn.microsoft.com/en-us/library/windows/desktop/... )
En supposant que la plaine de l'API Win32, l'utiliser dans votre gestionnaire pour
WM_LBUTTONDOWN
:OriginalL'auteur Georg Fritzsche
Vous pouvez appeler GetMouseMovePointsEx pour obtenir la position de la souris et de l'histoire. Sinon, si vous avez accès à votre wndproc, vous pouvez simplement vérifier le lparam de WM_MOUSEMOVE, WM_LBUTTONDOWN ou un message similaire pour les coordonnées x,y.
OriginalL'auteur Andrew Keith
Visual C++:
GetCursorPos
System::Windows::Forms::Contrôle::MousePosition
System::Windows::Forms::Curseur:: Position
C++:
La Position De La Souris
OriginalL'auteur SimonDever
Maintenant, vous pouvez profiter de la position x et y du pointeur de la souris dans la coordonner. xPos et yPos doit être long:
À l'intérieur, vérifiez si xPos et yPos viennent en vertu de n'importe quel objet dans l'écran de coordonnées.
OriginalL'auteur ram
Maintenant, en supposant que vous allez gérer cela en cliquant sur le bouton gauche de la souris
je ne le savais pas, il est encore utilisé dans certains des exemples sur le site web MSDN (j'.e msdn.microsoft.com/en-us/library/windows/desktop/... )
OriginalL'auteur Mr.Cat