C++ 获取当前光标位置

C++ 获取当前光标位置,c++,winapi,C++,Winapi,我想获得窗口的当前鼠标位置,并将其分配给两个变量x和y(相对于窗口的坐标,而不是相对于整个屏幕的坐标) 我使用Win32和C++。 还有一个额外的问题:您将如何隐藏/取消隐藏光标?您可以通过调用来获取光标位置 这将返回光标相对于屏幕坐标的位置。调用映射到窗口坐标 if (ScreenToClient(hwnd, &p)) { //p.x and p.y are now relative to hwnd's client area } 可以使用隐藏和显示光标 必须确保每次隐藏光

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

我使用Win32和C++。


还有一个额外的问题:您将如何隐藏/取消隐藏光标?

您可以通过调用来获取光标位置

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

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

可以使用隐藏和显示光标

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

如果传入指向点结构的指针,将返回x/y


隐藏光标可以用来完成。

我对downvote的猜测的可能重复是,GetCursorPos检索屏幕坐标,而问题明确询问窗口坐标<您的答案中缺少code>ScreenToClient/
MapWindowPoints
。如果隐藏和显示调用不匹配,会发生什么情况?即使在窗口/程序关闭后,它是否仍会隐藏光标?如果您使用OpenGL,就像我发现它时一样,您可能会发现它与我在鼠标y坐标翻转时发现的一样有用。干杯
if (ScreenToClient(hwnd, &p))
{
    //p.x and p.y are now relative to hwnd's client area
}
ShowCursor(FALSE);//hides the cursor
ShowCursor(TRUE);//shows it again