Как установить область/прямоугольник, в котором курсор может двигаться?

Например. когда вы нажимаете на край монитора, ваш курсор не может идти дальше, и более ярким примером является то, когда в Microsoft Paint вы выбираете цвет из таблицы RGB, это не позволит вашей мыши выйти за пределы прямоугольник, пока ваша мышь не нажата..

мой вопрос: как бы вы реализовали это на С++ с API win32?


person Kaije    schedule 07.09.2010    source источник


Ответы (2)


Вы можете использовать следующую функцию от Microsoft

BOOL WINAPI ClipCursor(
  __in_opt  const RECT *lpRect
); 

См. http://msdn.microsoft.com/en-us/library/ms648383(VS.85).aspx

person Rod    schedule 07.09.2010
comment
О, спасибо :) Я знал, что это будет просто... просто не мог сообразить, что искать в google/msdn. - person Kaije; 07.09.2010
comment
Поиск в Google: ограничить движение мыши прямоугольником win32 - person Rod; 07.09.2010

Используйте функцию ClipCursor. Просто укажите прямоугольник, которым будет ограничиваться курсор. Чтобы отпустить мышь (то есть восстановить нормальное поведение), просто передайте в функцию NULL вместо указателя на прямоугольную структуру.

person Andreas Rejbrand    schedule 07.09.2010