Задать вопрос

Как захватить курсор аналогично vmware или remote desktop? Windows c\c++\c#

Здравствуйте.

Необходимо написать оконное приложение в Windows которое захватывает курсор. Причем хочется чтобы было как в шутерах, где можно бесконечно двигать мышь влево или вправо не боясь упереться в конец окна\экрана.

Как это делается правильно? Не хотелось бы делать велосипед.

Спасибо
  • Вопрос задан
  • 5374 просмотра
Подписаться 6 Оценить 1 комментарий
Решения вопроса 1
@vScherba
Захват мыши — HWND SetCapture(HWND hWnd); Освобождение — BOOL ReleaseCapture(VOID); Возможно, пригодится еще HWND GetCapture(VOID); и сообщение WM_CAPTURECHANGED.
Ответ написан
Пригласить эксперта
Ответы на вопрос 4
AxisPod
@AxisPod
Ну во-первых внутри окна виртуальной машины (guest), курсор свой, когда курсор захватывается виртуалкой, то запоминается его позиция и он скрывается, в виртуалку же прокидываются координаты курсора, но с учетом положения окна, если реальный вышел за границу, то координата в виртуалке будет внутренняя и регулируется это самой виртуалкой (так как эмулируется хардварная мышь).

Если нельзя выпускать курсор, то есть методы, которые ограничивают перемещения мыши, вспомню, напишу.
Ответ написан
nzeemin
@nzeemin
программист
Во-первых, захватить мышь (capture mouse), чтобы при выходе за границы окна мышиные события не уходили в другие приложения.
Во-вторых, «возвращать» курсор если он вышел.
Ответ написан
arxont
@arxont
C# программист
отслеживать координату курсора и если она вышла за какой-то промежуток возвращать обратно
Ответ написан
Комментировать
@sadgb Автор вопроса
а подскажите пожалуйста какие функции winapi мне помогут, не знаю с какой начать
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы