Get current cursor position

2020-01-24 20:48发布

I want to get the current mouse position of the window, and assign it to 2 variables x and y (co-ordinates relative to the window, not to the screen as a whole).

I'm using Win32 and C++.

And a quick bonus question: how would you go about hiding the cursor/unhiding it?

标签: c++ winapi
2条回答
混吃等死
2楼-- · 2020-01-24 21:28

You get the cursor position by calling GetCursorPos.

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

This returns the cursor position relative to screen coordinates. Call ScreenToClient to map to window coordinates.

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

You hide and show the cursor with ShowCursor.

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

You must ensure that every call to hide the cursor is matched by one that shows it again.

查看更多
家丑人穷心不美
3楼-- · 2020-01-24 21:38

GetCursorPos() will return to you the x/y if you pass in a pointer to a POINT structure.

Hiding the cursor can be done with ShowCursor().

查看更多
登录 后发表回答