web-dev-qa-db-fra.com

Obtenir la position actuelle du curseur

Je souhaite connaître la position actuelle de la fenêtre de la souris et l'assigner à deux variables x et y (coordonnées relatives à la fenêtre et non à l'écran dans son ensemble).

J'utilise Win32 et C++.

Et une petite question bonus: comment voulez-vous cacher le curseur/le cacher?

50
I Phantasm I

Vous obtenez la position du curseur en appelant GetCursorPos .

POINT p;
if (GetCursorPos(&p))
{
    //cursor position now in p.x and p.y
}

Ceci retourne la position du curseur par rapport aux coordonnées de l'écran. Appelez ScreenToClient pour mapper les coordonnées de la fenêtre.

if (ScreenToClient(hwnd, &p))
{
    //p.x and p.y are now relative to hwnd's client area
}

Vous masquez et affichez le curseur avec ShowCursor .

ShowCursor(FALSE);//hides the cursor
ShowCursor(TRUE);//shows it again

Vous devez vous assurer que chaque appel masquant le curseur correspond à un appel qui le réaffiche.

108
David Heffernan

GetCursorPos () vous retournera le x/y si vous passez un pointeur sur une structure POINT.

Masquer le curseur peut être fait avec ShowCursor () .

13
Mike Kwan