2
我试图隐藏鼠标光标使用win32 API ShowCursor(FALSE),但在多屏幕设置时鼠标到达另一个屏幕我没有得到任何鼠标更新在Windows中,反正有我可以防止这个?在多屏幕设置中隐藏鼠标光标
这是一个全屏视频游戏,我似乎没有找到任何可以做这样的事情的Windows API。
我试图隐藏鼠标光标使用win32 API ShowCursor(FALSE),但在多屏幕设置时鼠标到达另一个屏幕我没有得到任何鼠标更新在Windows中,反正有我可以防止这个?在多屏幕设置中隐藏鼠标光标
这是一个全屏视频游戏,我似乎没有找到任何可以做这样的事情的Windows API。
从我的理解,你的问题不是隐藏鼠标光标,而是限制它到你的窗口?
在这种情况下,ClipCursor
函数应该完成这项工作。
{
RECT windowRect;
GetWindowRect(hWnd, &windowRect);
ClipCursor(&windowRect);
}
对于无边框全屏窗口,应该没问题。如果窗口的位置或大小发生变化或窗口失去焦点,则需要重复该步骤。
对于游戏编程,尽管可能有更好的方法,例如DirectInput,它提供了独有的鼠标处理模式(tutorials可用),并在较低级别上为您执行所有操作。
有一些关于处理这个问题的不同方法的讨论,例如this one on the MSDN forums。
另一方面,如果您希望光标能够离开窗口,并且只在窗口上方隐藏光标,则应该处理WM_SETCURSOR
消息并使用SetCursor
来隐藏光标。
case WM_SETCURSOR:
SetCursor(NULL);
return TRUE;