Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - Общий форум

Страница: 1 |

 

  Вопрос: Scroll Bar Добавлено: 08.06.10 14:03  

Автор вопроса:  iprog | Web-сайт: usprogs.atheo-club.ru
Здравствуйте. Скажите, пожалуйста, как отследить скролл мыши так, чтобы можно было прокрутить имеющийся Scroll Bar? Заранее спасибо.

Ответить

  Ответы Всего ответов: 4  

Номер ответа: 1
Автор ответа:
 Artyom



Разработчик

Вопросов: 130
Ответов: 6602
 Профиль | | #1 Добавлено: 08.06.10 16:52
Событие MouseWheel

Ответить

Номер ответа: 2
Автор ответа:
 iprog



Вопросов: 26
Ответов: 110
 Web-сайт: usprogs.atheo-club.ru
 Профиль | | #2
Добавлено: 08.06.10 19:46
У меня VB 6.0.

Ответить

Номер ответа: 3
Автор ответа:
 Just



Вопросов: 4
Ответов: 330
 Профиль | | #3 Добавлено: 08.06.10 21:12
если тебе нужно отслеживать на определенной форме, то так:

форма
  1.  
  2. Private Sub Form_Load()
  3. Call Hook(Me.hwnd)
  4. End Sub
  5.  
  6. Private Sub Form_Unload(Cancel As Integer)
  7. Call UnHook(Me.hwnd)
  8. End Sub
  9.  
  10. Private Sub Timer1_Timer()
  11. If Wheel = 1 Then
  12.  Wheel = 0
  13.  Text1 = Text1 + 5
  14. End If
  15.   If Wheel = -1 Then
  16.    Wheel = 0
  17.    Text1 = Text1 - 5
  18.   End If
  19. End Sub



модуль
  1.  
  2. Option Explicit
  3.  
  4. 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
  5. Private Declare Function SetWindowLongA Lib "user32" (ByVal hwnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As Long
  6. Private Declare Function SetWindowTextA Lib "user32" (ByVal hwnd As Long, ByVal lpString As String) As Long
  7. Private Const GWL_WNDPROC = -4
  8. Private Const WM_MOUSEWHEEL = &H20A
  9. Private lpPrevWndProc As Long
  10. Public Wheel As Integer
  11.  
  12. Sub Hook(hwnd As Long)
  13. lpPrevWndProc = SetWindowLongA(hwnd, GWL_WNDPROC, AddressOf WindowProc)
  14. End Sub
  15.  
  16. Sub UnHook(hwnd As Long)
  17. Call SetWindowLongA(hwnd, GWL_WNDPROC, lpPrevWndProc)
  18. End Sub
  19.  
  20. Function WindowProc(ByVal hwnd As Long, ByVal uMsg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long
  21. On Error Resume Next
  22. If uMsg = WM_MOUSEWHEEL Then
  23. If wParam = -7864320 Or wParam = -23592960 Or wParam = -15728640 Then Wheel = -1
  24. If wParam = 7864320 Or wParam = 23592960 Or wParam = 15728640 Then Wheel = 1
  25.   ' Состояние скролла мыши в заголовоке формы
  26.   Call SetWindowTextA(Form1.hwnd, "Wheel " & Wheel)
  27. Else
  28.   WindowProc = CallWindowProcA(lpPrevWndProc, hwnd, uMsg, wParam, lParam)
  29. End If
  30. End Function



а если по всем окнам, там нужен глобальный хук мыши

Ответить

Номер ответа: 4
Автор ответа:
 iprog



Вопросов: 26
Ответов: 110
 Web-сайт: usprogs.atheo-club.ru
 Профиль | | #4
Добавлено: 09.06.10 13:05
Спасибо огромное, Just! Ну и всем остальным тоже.

Ответить

Страница: 1 |

Поиск по форуму



© Copyright 2002-2011 VBNet.RU | Пишите нам