Функция ClipCursor

Declare Function ClipCursor Lib "user32" (lpRect As RECT) As Long

ClipCursor ограничивает область действия курсора мыши в прямоугольной области экрана. Если пользователь попробует переместить курсор за пределы этой области ограничения или вызвать функцию SetCursorPos, то курсор немедленно возвратится в область. Этот эффект ограничения будет действовать в любой программе, на которую Вы переключаетесь и останется, даже если программа, которая ограничила курсор, закрывается! Единственный способ "выпустить" курсор состоит в том, чтобы "ограничить" область полным экраном (см. пример). Это не очень хорошая идея ограничивать курсор, так как пользователь желает перемещать курсор куда-нибудь за пределы вашей программы.

lpRect
Прямоугольник (в экранных координатах), определяющий ограничивающий прямоугольник

Пример

' Временно ограничим перемещения курсора областью формы Form1
Dim winrect As RECT ' прямоугольник ограничения
Dim retval As Long  ' возвращаемое значение
retval = GetWindowRect(Form1.hWnd, winrect) ' помещаем координаты окна в winrect
retval = ClipCursor(winrect) ' ограничиваем перемещения курсора

' ** Разместите следующий код для "освобождения" курсора. **
Dim winrect As RECT, retval As Long
Dim deskhWnd As Long  ' описатель рабочего стола
deskhWnd = GetDesktopWindow()  ' получаем описатель рабочего стола
retval = GetWindowRect(deskhWnd, winrect) ' помещаем координаты окна в winrect
retval = ClipCursor(winrect) ' "ограничиваем" курсор целым экраном

Смотри также

GetClipCursor

Категория

Курсоры

Реклама