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