用钩子函数SetWindowsHookEx 得到消息后,不让该消息传播,即吸收该消息,解决后立刻给分

解决方案 »

  1.   

    用SetWindowHookEx函数安装,新安装的挂钩挂在挂钩函数链的顶部(开始处)。如果还要把消息传给下面的挂钩函数处理,那么调用CallNextHookEx函数,以保证遍历挂钩函数链。所以说如果要吃掉消息.............那就把CallNextHookEx跳过
      

  2.   

    '在模块中
    Public Const WH_MOUSE = 7Declare Function CallNextHookEx Lib "user32" (ByVal hHook As Long, ByVal ncode As Long, ByVal wParam As Long, lParam As Any) As Long
    Declare Function GetKeyState Lib "user32" (ByVal nVirtKey As Long) As Integer
    Declare Function SetWindowsHookEx Lib "user32" Alias "SetWindowsHookExA" (ByVal idHook As Long, ByVal lpfn As Long, ByVal hmod As Long, ByVal dwThreadId As Long) As Long
    Declare Function UnhookWindowsHookEx Lib "user32" (ByVal hHook As Long) As Long
    Public hHook As LongPublic Function MouseProc(ByVal idHook As Long, ByVal wParam As Long, ByVal lParam As Long) As Long    If idHook < 0 Then
            'call the next hook
            MouseProc = CallNextHookEx(hHook, idHook, wParam, ByVal lParam)
        Else
            If wParam = 512 Then
                Exit Function '吸收右键的消息,但不能不
            Else
                Debug.Print wParam, lParam, idHook
                MouseProc = CallNextHookEx(hHook, idHook, wParam, ByVal lParam)
            End If
                   
        End If
    End Function'窗体中
    Private Sub Form_Load()
        'set a keyboard hook
        hHook = SetWindowsHookEx(WH_MOUSE, AddressOf MouseProc, App.hInstance, App.ThreadID)
    End Sub
    Private Sub Form_Unload(Cancel As Integer)
        'remove the windows-hook
        UnhookWindowsHookEx hHook
    End Sub
    还有两个text框,去掉text框鼠标右键的消息,但可以编辑等。
    希望能有代码!!!