Мой Kbyte.Ru
Рассылка Kbyte.Ru
Группы на Kbyte.Ru
Партнеры Kbyte.Ru
Реклама
Сделано руками
Сделано руками
> Исходные коды - Алексей Немиро -

Visual Basic 5.0/6.0 - Клавиатуры, мыши, джойстики

Все примеры / Клавиатуры, мыши, джойстики

Как ограничить передвижение мыши?

Автор: Алексей Немиро | добавлено: 05.03.2010, 16:45 | просмотров: 1557 (1+) | комментариев: 3 | рейтинг: *x1
Пример демонстрирует, как можно ограничить передвижение мышки по коврику, путем установки специального лазерного поля по периметру :-). Ну а если серьезно, то конечно, лазеры не понадобятся. Передвижение курсора мышки ограничивается в рамках формы программы.

Инструкции

Создайте стандартный EXE-проект. На форме (Form) разместите два элемент CommandButton.

Код

Private Declare Function ClipCursor  Lib "user32" (lpRect As Any) As Long 
Private Declare Function GetClientRect  Lib "user32" (ByVal hwnd As Long, lpRect As RECT) As Long 
Private Declare Function ClientToScreen Lib "user32" (ByVal hwnd As Long, lpPoint As POINTAPI) As Long 
Private Declare Function OffsetRect Lib "user32" (lpRect As RECT, ByVal x As Long, ByVal y As Long) As Long 

Private Type RECT 
 Left As Integer 
 Top As Integer 
 Right As Integer 
 Bottom As Integer 
End Type 

Private Type POINTAPI 
 x As Long 
 y As Long 
End Type 

Private Sub Form_Load() 
 Command1.Caption = "'Мышка в клетке!" 
 Command2.Caption = "Выпустить" 
End Sub 

Private Sub Command1_Click() 
 Dim rctCLS As RECT 
 Dim pntXY As POINTAPI 
 GetClientRect Me.hwnd, rctCLS 
 pntXY.x = rctCLS.Left 
 pntXY.y = rctCLS.Top 
 ClientToScreen Me.hwnd, pntXY 
 OffsetRect rctCLS, pntXY.x, pntXY.y 
 ClipCursor rctCLS 
End Sub 

Private Sub Command2_Click() 
 ClipCursor ByVal 0& 
End Sub 

Private Sub Form_Unload(Cancel As Integer) 
 ClipCursor ByVal 0& 
End Sub
Обратите внимание
Язык Visual Basic 6.0 является устаревшим. Многие примеры, размещенные на нашем сайте, были созданы еще во времена Windows 98 и могут не работать в современных операционных системах.
Если у вас возникнут какие-либо проблемы или вопросы, вы можете обратиться за помощью на наш форум.
Об авторе

Алексей Немиро

Интернет-деятель. Автор многочисленных статей и переводов статей по программированию и информационным технологиям. Работы Алексея можно найти в популярных печатных изданиях компьютерной тематики. Автор проекта Kbyte.Ru.
Сейчас Алексей занимается профессиональным Web-программированием на базе технологий .NET Framework. Иногда пишет различные программки и компоненты для Windows и Android. В свободное время занимается Web-дизайном, увлекается фото- и видеосъемкой.

См. также:
Профиль автора
Алексей Немиро
Последние комментарии (всего: 3)

Добавлять комментарии могут только зарегистрированные пользователи сайта.
Если у Вас уже есть учетная запись на Kbyte.Ru, пройдите процедуру авторизации OpenID.
Если Вы еще не зарегистрированы на Kbyte.Ru - зарегистрируйтесь.

А можно не для VB.NET код дать? ошибка вот где
Private Sub Command1_Click()
Dim rctCLS As RECT
Dim pntXY As POINTAPI
GetClientRect Me.hwnd, rctCLS <<не знает hwnd
pntXY.x = rctCLS.Left
pntXY.y = rctCLS.Top
ClientToScreen Me.hwnd, pntXY <<не знает hwnd
OffsetRect rctCLS, pntXY.x, pntXY.y
ClipCursor rctCLS
End Sub

Private Sub Command2_Click()
ClipCursor ByVal 0& <<не знает
А можно не для VB.NET код дать? извините здесь опечатался нужно так : А можно для VB.NET код дать?
Авторизация
 
OpenID
Зарегистрируйся и получи 10% скидку на добавление своего сайта в каталоги! Подробнее »
Поиск по сайту
Люди на Kbyte.Ru
Реклама
Счетчики