Attribute VB_Name = "Module2" Option Explicit 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 Declare Function SetWindowLong Lib "user32" Alias _ "SetWindowLongA" (ByVal hwnd As Long, _ ByVal nIndex As Long, ByVal dwNewLong As Long) As Long Global Const GWL_WNDPROC = -4 Global lpPrevWndProc As Long Global hCtrlWnd As Long Global Const WM_HSCROLL = &H114 Global Const WM_VSCROLL = &H115 Global bHook As Boolean Function WindowProc(ByVal hw As Long, ByVal uMsg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long If ((uMsg = WM_HSCROLL) Or (uMsg = WM_VSCROLL)) Then WindowProc = 0 Else WindowProc = CallWindowProc(lpPrevWndProc, hw, uMsg, wParam, lParam) End If End Function Sub Hook() lpPrevWndProc = SetWindowLong(hCtrlWnd, GWL_WNDPROC, AddressOf WindowProc) bHook = True End Sub Sub Unhook() Dim temp As Long temp = SetWindowLong(hCtrlWnd, GWL_WNDPROC, lpPrevWndProc) bHook = False End Sub