Я пытаюсь использовать SetCursorPos для перемещения местоположения курсора, когда он попадает в край экрана (для управления скрабом); стандартная «дорожка до тех пор, пока край не будет удален, переместите курсор в середину экрана».Как заставить Windows забыть старую позицию мыши после SetCursorPos?
Проблема в том, что Windows сбрасывает местоположение курсора туда, где оно было, как только оно получает событие мыши.
Для целей отладки, я сделал тест приложение, используя код по адресу: http://msdn.microsoft.com/en-us/library/windows/desktop/ms648380(v=vs.85).aspx#_win32_Using_the_Keyboard_to_Move_the_Cursor
Это показывает мне такое же поведение: использовать мышь, чтобы оставить курсор в левом верхнем углу окна (справа в меню «Файл») и используйте клавиатуру для перемещения курсора в любом месте. Но как только я коснусь мыши, курсор вернется в левый верхний угол.
Это явно менее полезно для моего контроля, который использует мышь для очистки.
Как я могу заставить Windows принять позицию SetCursorPos как правду?
Спасибо!
Я уверен, что это потому, что драйвер мыши (или некоторые функции, которые используют информацию драйвера мыши) отслеживает, где находится курсор. Поскольку сам драйвер мыши просто говорит: «Мышь перемещала x, y позиции из текущего местоположения», больше ничего не может сделать, кроме как отслеживать текущую позицию. У меня такое чувство, что вы ничего не можете с этим поделать. –
Что вы сделали, чтобы быть правдой, не могли бы вы вставить часть своего кода? – woliveirajr
Просто перейдите по ссылке, чтобы увидеть код, который делает то, что я описываю. – maw