Declare Function ClipCursor Lib "user32" (lpRect As RECT) As Long
ClipCursor ограничивает область действия курсора мыши в прямоугольной области экрана. Если пользователь попробует переместить курсор за пределы этой области ограничения или вызвать функцию SetCursorPos, то курсор немедленно возвратится в область. Этот эффект ограничения будет действовать в любой программе, на которую Вы переключаетесь и останется, даже если программа, которая ограничила курсор, закрывается! Единственный способ "выпустить" курсор состоит в том, чтобы "ограничить" область полным экраном (см. пример). Это не очень хорошая идея ограничивать курсор, так как пользователь желает перемещать курсор куда-нибудь за пределы вашей программы.
' Временно ограничим перемещения курсора областью формы 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) ' "ограничиваем" курсор целым экраном