SetCursorPosを使用して、(FPS ゲームのように) ウィンドウの中央にマウスをトラップしたいと考えています。
問題は、そうすると、ウィンドウが WM_MOUSEMOVE を受け取ることです。これは、せいぜいユーザーが意図した動きをキャンセルし、最悪の場合、フィードバック ループに入ります。
GetCursorPos を使用して位置を読み取り、SetCursorPos で移動した場所と同じ場合はメッセージを無視することを検討しました。ただし、このアプローチの問題は、マウスが非同期であることです。プログラムが遅れた場合、GetCursorPos は予想とは異なる値を返すため、メッセージを無視することはできません。
この問題に対処する良い方法はありますか?