Страница: 1 |
|
Вопрос: Scroll Bar
|
Добавлено: 08.06.10 14:03
|
|
Автор вопроса: iprog | Web-сайт: usprogs.atheo-club.ru
|
Здравствуйте. Скажите, пожалуйста, как отследить скролл мыши так, чтобы можно было прокрутить имеющийся Scroll Bar? Заранее спасибо.
Ответить
|
Номер ответа: 3 Автор ответа: Just
Вопросов: 4 Ответов: 330
|
Профиль | | #3
|
Добавлено: 08.06.10 21:12
|
если тебе нужно отслеживать на определенной форме, то так:
форма
-
- Private Sub Form_Load()
- Call Hook(Me.hwnd)
- End Sub
-
- Private Sub Form_Unload(Cancel As Integer)
- Call UnHook(Me.hwnd)
- End Sub
-
- Private Sub Timer1_Timer()
- If Wheel = 1 Then
- Wheel = 0
- Text1 = Text1 + 5
- End If
- If Wheel = -1 Then
- Wheel = 0
- Text1 = Text1 - 5
- End If
- End Sub
модуль
-
- Option Explicit
-
- Private Declare Function CallWindowProcA Lib "user32" (ByVal lpPrevWndFunc As Long, ByVal hwnd As Long, ByVal MSG As Long, ByVal wParam As Long, ByVal lParam As Long) As Long
- Private Declare Function SetWindowLongA Lib "user32" (ByVal hwnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As Long
- Private Declare Function SetWindowTextA Lib "user32" (ByVal hwnd As Long, ByVal lpString As String) As Long
- Private Const GWL_WNDPROC = -4
- Private Const WM_MOUSEWHEEL = &H20A
- Private lpPrevWndProc As Long
- Public Wheel As Integer
-
- Sub Hook(hwnd As Long)
- lpPrevWndProc = SetWindowLongA(hwnd, GWL_WNDPROC, AddressOf WindowProc)
- End Sub
-
- Sub UnHook(hwnd As Long)
- Call SetWindowLongA(hwnd, GWL_WNDPROC, lpPrevWndProc)
- End Sub
-
- Function WindowProc(ByVal hwnd As Long, ByVal uMsg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long
- On Error Resume Next
- If uMsg = WM_MOUSEWHEEL Then
- If wParam = -7864320 Or wParam = -23592960 Or wParam = -15728640 Then Wheel = -1
- If wParam = 7864320 Or wParam = 23592960 Or wParam = 15728640 Then Wheel = 1
-
- Call SetWindowTextA(Form1.hwnd, "Wheel " & Wheel)
- Else
- WindowProc = CallWindowProcA(lpPrevWndProc, hwnd, uMsg, wParam, lParam)
- End If
- End Function
а если по всем окнам, там нужен глобальный хук мыши
Ответить
|
Страница: 1 |
Поиск по форуму