Страница: 1 |
Страница: 1 |
Вопрос: Прокрутка колесика мыши
Добавлено: 16.11.07 20:12
Автор вопроса: - MaAs† -™ | ICQ: 233628153
Вопрос собственно вот в чем: Есть ли вообще в VB6 событие, реагирующее на прокрутку колесика? или это считается как нажатие клавиши? Если так, то какой?
Ответы
Всего ответов: 6
Номер ответа: 1
Автор ответа:
EUGY
Вопросов: 0
Ответов: 454
Профиль | | #1
Добавлено: 16.11.07 21:21
За это отвечает сообщение WM_MOUSEWHEEL.
Стандартые элементы в vb не генерируют этого события. Но всё можно перехватить.
Номер ответа: 2
Автор ответа:
EUGY
Вопросов: 0
Ответов: 454
Профиль | | #2
Добавлено: 16.11.07 22:06
Вот например usercontrol:
Private Type MSG
hwnd As Long
message As Long
wParam As Long
lParam As Long
time As Long
pt As Long
End Type
Private Const WM_MOUSEWHEEL = &H20A
Private Declare Function GetMessage Lib "user32" Alias "GetMessageA" (lpMsg As MSG, ByVal hwnd As Long, ByVal wMsgFilterMin As Long, ByVal wMsgFilterMax As Long) As Long
Private Declare Function TranslateMessage Lib "user32" (lpMsg As MSG) As Long
Private Declare Function DispatchMessage Lib "user32" Alias "ispatchMessageA" (lpMsg As MSG) As Long
Private Declare Sub PostQuitMessage Lib "user32" (ByVal nExitCode As Long)
Event MouseWheel(orien As Long)
Private Function LWORD(param As Long) As Long
LWORD = param And &HFFFF&
End Function
Private Function HWORD(param As Long) As Long
HWORD = param \ &H10000 And &HFFFF&
End Function
Private Sub UserControl_Hide()
If UserControl.Ambient.UserMode = True Then PostQuitMessage 0
End Sub
Private Sub UserControl_Show()
Dim pmsg As MSG
Dim rotate As Long
If UserControl.Ambient.UserMode = True Then
While (GetMessage(pmsg, 0, 0, 0))
If pmsg.message = WM_MOUSEWHEEL Then
If pmsg.wParam > 0 Then
rotate = HWORD(pmsg.wParam)
Else
rotate = HWORD(pmsg.wParam) - 65536
End If
'Debug.Print rotate
RaiseEvent MouseWheel(rotate)
End If
TranslateMessage pmsg
 ispatchMessage pmsg
Wend
End If
End Sub
Private Sub UserControl_MouseWheel(orien As Long)
 ebug.Print orien ' направление вращения
End Sub
Номер ответа: 3
Автор ответа:
- MaAs† -™
ICQ: 233628153
Вопросов: 13
Ответов: 29
Профиль | | #3
Добавлено: 17.11.07 20:27
О, спасибо, вопрос закрыт
Номер ответа: 4
Автор ответа:
VβÐ
Вопросов: 15
Ответов: 194
Web-сайт:
Профиль | | #4
Добавлено: 05.01.09 11:42
Di
Номер ответа: 5
Автор ответа:
VβÐ
Вопросов: 15
Ответов: 194
Web-сайт:
Профиль | | #5
Добавлено: 05.01.09 11:42
Номер ответа: 6
Автор ответа:
Администратор
ICQ: 278109632
Вопросов: 42
Ответов: 3949
Web-сайт:
Профиль | | #6
Добавлено: 06.01.09 13:48
Бля, да юзайте вы теги форума! [sоurce], а не [cоde] !