Скролл по DBGrid'у с помощью колесика мышки - VB
Формулировка задачи:
Извините если надоел этой крысой...
Подскажите пожалуйста, как сделать скрол по DBGrid'у колесиком крысы?
Toxa33rus и Abu. Ну Вы же точно знаете, ни где не смог найти...
Решение задачи: «Скролл по DBGrid'у с помощью колесика мышки»
textual
Листинг программы
' в модуле: Public Declare Function CallWindowProc Lib "user32" Alias "CallWindowProcA" (ByVal lpPrevWndFunc As Long, ByVal hwnd As Long, ByVal Msg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long Public Declare Function SetWindowLong Lib "user32" Alias "SetWindowLongA" (ByVal hwnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As Long Public Const GWL_WNDPROC = -4 Const WM_MOUSEWHEEL = &H20A Public FlGrOldProc As Long Public Function ScrollFlGrid(ByVal hwnd As Long, ByVal Msg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long If Msg = WM_MOUSEWHEEL Then If wParam < 0 Then If Form1.MSFlexGrid1.Rows > Form1.MSFlexGrid1.TopRow + 1 Then _ Form1.MSFlexGrid1.TopRow = Form1.MSFlexGrid1.TopRow + 1 ElseIf wParam > 0 Then If Form1.MSFlexGrid1.TopRow > 1 Then _ Form1.MSFlexGrid1.TopRow = Form1.MSFlexGrid1.TopRow - 1 End If End If ScrollFlGrid = CallWindowProc(FlGrOldProc, hwnd, Msg, wParam, lParam) End Function ' в форме: Private Sub Form_Load() FlGrOldProc = SetWindowLong(MSFlexGrid1.hwnd, GWL_WNDPROC, AddressOf ScrollFlGrid) End Sub Private Sub Form_Terminate() Call SetWindowLong(MSFlexGrid1.hwnd, GWL_WNDPROC, FlGrOldProc) End Sub
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д