Warm tip: This article is reproduced from serverfault.com, please click

c++-获取当前光标位置

(c++ - Get current cursor position)

发布于 2011-06-21 10:19:58

我想获取窗口的当前鼠标位置,并将其分配给 2 个变量xy(相对于窗口的坐标,而不是整个屏幕的坐标)。

我正在使用 Win32 和 C++。

还有一个快速的奖励问题:你将如何隐藏/取消隐藏光标?

Questioner
I Phantasm I
Viewed
11
David Heffernan 2011-06-21 20:15:58

你可以通过调用获取光标位置GetCursorPos

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

这将返回相对于屏幕坐标的光标位置。调用ScreenToClient以映射到窗口坐标。

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

你可以使用 隐藏和显示光标ShowCursor

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

你必须确保每次隐藏光标的调用都与再次显示光标的调用相匹配。