我想使用 SetCursorPos将鼠标捕捉到窗口中间(就像在FPS游戏中一样). 问题在于,当我这样做时,我的窗口会收到WM_MOUSEMOVE – 这最多会取消用户想要的任何移动,最坏的情况是进入反馈循环. 我
问题在于,当我这样做时,我的窗口会收到WM_MOUSEMOVE – 这最多会取消用户想要的任何移动,最坏的情况是进入反馈循环.
我考虑过使用GetCursorPos读取位置并忽略该消息,如果它与我用SetCursorPos移动它的位置相同.但这种方法的问题在于鼠标是异步的.如果程序落后,那么GetCursorPos将返回一个与我预期不同的值 – 因此它不会知道忽略该消息.
有没有一个很好的方法来处理这个问题?
当应用程序具有焦点时,应使用 RawInput API完成此类输入并隐藏光标.这意味着它不受屏幕限制,您实际上并不处理鼠标事件.