|
Пример для VB5 "Работа с мышью с помощью функций API"
Данная статья
рассматривает приемы работы с мышкой. Не мне вам
объяснять, что такое мышка. Я помню те времена,
когда в компьютерных клубах мышку выдавали под
большой залог. А сейчас мышь - обязательный
атрибут любого настольного компьютера, как
клавиатура, монитор, системный блок... принтер...
модем... GeForce3... PentiumIII/Athlon 1000 Гц...
размечтался я что-то... |
|
|
Необходимые разъяснения:
В данной статье все декларируемые функции обозначены как Private, что позволяет использовать их непосредственно в коде формы. Но более правильным является декларирование функций в дополнительном модуле(Меню Project/Add Module - нажмите Enter)
Список рассматриваемых вопросов:
0. Событие MousePointer 0.1 Событие MouseMove, MouseDown, MouseUp 1. Как установить время двойного нажатия клавиши мыши 2. Переместить курсор мыши на новое место 3. Как заблокировать мышку 4. Как отследить местоположение курсора 5. Поменять программно кнопки мыши 6. Скрыть/показать курсор мыши
------------------------------------ 0. Прежде всего хочется отметить событие MousePointer - при определенном его значении курсор может менять свой вид Константа Значение Описание vbDefault 0 Курсор по умолчанию vbArrow 1 Стрелка vbCrosshair 2 Крестик vbIbeam 3 Стандартный курсор для текста. vbIconPointer 4 Иконка vbSizePointer 5 Крестик со стрелками во все четыре стороны vbSizeNESW 6 Двухконечная стрелка (вниз/влево - вверх/вправо) vbSizeNS 7 Двухконечная стрелка (вверх-вниз) vbSizeNWSE 8 Двухконечная стрелка (вверх/влево - вниз/вправо) vbSizeWE 9 Двухконечная стрелка (влево-вправо) vbUpArrow 10 Стрелка вверх vbHourglass 11 Часы vbNoDrop 11 Перечеркнутый круг vbArrowHourglass 13 Стрелка с часами vbArrowQuestion 14 Стрелка с вопросом. (обычно используется для контекстной справки) vbSizeAll 15 Аналогично значению 5 Custom 99 Курсор, определяемый пользователем. Для использования своего курсора, его надо поместитьт в событие MouseIcon
Пример использования: Form1.MousePointer = 14 Form1.MousePointer = vbHourglass
------------------------------------ 0.1 При движении мыши возникает событие MouseMove. Данное событие позволяет отследить местоположение мыши. Для отслеживания нажатий на кнопки мыши используются события MouseDown и MouseUp. Событие Описание MouseMove Событие возникает при движении мыши MouseDown Событие возникает при нажатии на кнопку мыши MouseUp Событие возникает при опускании кнопки мыши
------------------------------------ 1. Как установить время двойного нажатия клавиши мыши
Данную операцию вы можете проделать непосредственно в системе: ПУСК/Панель Управления/Мышь и меняете ползунок DoubleClickSpeed. В примере замените цифру '500' на время (в миллисекундах), которое нужно вам: 1000 миллисекунд = 1 секунда
Private Declare Function SetDoubleClickTime Lib "user32" (ByVal wCount As Long) As Long
Private Sub Form_Load() s = SetDoubleClickTime(500) End Sub
------------------------------------ 2. Переместить курсор мыши на новое место
Данный пример покажет, как переместить курсор мыши на новое место. Замените цифры в скобках (500,600) на те, которые нужны вам. Цифры означают, на какое расстояние (в пикселях экрана) переместится курсор мыши относительно левого/верхнего угла вашего монитора.
Private Declare Function SetCursorPos& Lib "user32" (ByVal X As Long, ByVal Y As Long)
Private Sub Form_Load() SetCursorPos 500, 600 End Sub
------------------------------------ 3. Как заблокировать мышку
Необходимое предупреждение!!! После выполнения данного кода вам только останется перезагрузить систему, прежде чем вы сможете снова работать с мышью
Shell "rundll32 mouse,disable"
------------------------------------ 4. Как отследить местоположение курсора
Прежде всего необходимо декларировать функцию, отвечающую за определение местоположения курсора, а также определить тип передаваемых данных
Private Declare Function GetCursorPos Lib "user32" (lpPoint As POINTAPI) As Long Private Type POINTAPI X As Long Y As Long End Type
Далее: положите на форму компоненты Timer и Label. Установите значение Inteval таймера в 1.
Private Sub Timer1_Timer() Dim cPos As POINTAPI GetCursorPos cPos 'Вызываем функцию, которая устанавливает позицию курсора Label1.Caption = cPos.X & ", " & cPos.Y 'Наблюдаем за перемещением курсора End Sub
------------------------------------ 5. Поменять программно кнопки мыши
Для того, чтобы программно поменять местами кнопки мыши, вам достаточно объявить нижеследующую функцию SwapMouseButton как... Private Declare Function SwapMouseButton& Lib "user32" (ByVal bSwap As Long) ' если вы будете использовать ее в одном модуле с кодом замены кнопок, или Public Declare Function SwapMouseButton& Lib "user32" (ByVal bSwap As Long) ' если вы захотите вынести функцию в отдельный модуль, что предпочтительней. Для программной замены вам достаточно использовать вышеприведенную функцию как: SwapMouseButton& 1 ' событие: кнопки поменялись местами SwapMouseButton& 0 ' событие: все вернулось в исходное состояние
------------------------------------ 6. Скрыть/показать курсор мыши
Иногда необходимо спрятать курсор на некоторое время, а хатем показать его. Вы можете воспользоваться нижепривиденным кодом, но ПОМНИТЕ: Перед выходом из вашей программы, не забудьте показать его.
Declare Function ShowCursor& Lib "user32" (ByVal bShow As Long)
ShowCursor& 0 'Скрыть курсор
ShowCursor& 1 'Показать курсор
Источник: http://www.vbstreets.ru |
Категория: Исходники на Visual Basic 5 | Добавил: aleksmir (30.08.2007)
| Автор: Алексей Смирнов
|
Просмотров: 2711
| Рейтинг: 0.0/0 |
Добавлять комментарии могут только зарегистрированные пользователи. [ Регистрация | Вход ]
|