获取当前光标位置

时间:2011-06-21 10:19:58

标签: c++ winapi

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

我正在使用Win32和C ++。

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

2 个答案:

答案 0 :(得分:107)

通过调用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

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

答案 1 :(得分:13)

如果传入指向POINT结构的指针,

GetCursorPos()将返回x / y。

可以使用ShowCursor()隐藏光标。