Private Sub grdTest_GotFocus()
    Oldwinproc = GetWindowLong(Me.Hwnd, GWL_WNDPROC)
    SetWindowLong Me.Hwnd, GWL_WNDPROC, AddressOf FlexScrollEnd Sub
Private Sub grdOrders_LostFocus()
    SetWindowLong Me.Hwnd, GWL_WNDPROC, OldwinprocEnd Sub''' module.bas
Public Oldwinproc   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 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 GetWindowLong Lib "user32" Alias "GetWindowLongA" (ByVal Hwnd As Long, _
 ByVal nIndex As Long) As LongPublic Declare Function ShellExecute Lib "shell32.dll" Alias "ShellExecuteA" (ByVal Hwnd As Long, ByVal lpOperation As String, ByVal lpFile As String, ByVal lpParameters As String, ByVal lpDirectory As String, ByVal nShowCmd As Long) As Long
Public Function FlexScroll(ByVal Hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long
'支持鼠标动作
     Select Case wMsg
        Case WM_MOUSEWHEEL
        Select Case wParam
            Case -7864320     '向下
               SendKeys "{PGDN}"            Case 7864320       '向上
               SendKeys "{PGUP}"
        End Select
    End Select
    FlexScroll = CallWindowProc(Oldwinproc, Hwnd, wMsg, wParam, lParam)
End Function