If butten = 2 Then   ??????
button

解决方案 »

  1.   

    抄了一段代码:
    '+++++++moudl3.bas
    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 LongDeclare Function SetWindowLong Lib "user32" Alias _
    "SetWindowLongA" (ByVal hwnd As Long, _
    ByVal nIndex As Long, ByVal dwNewLong As Long) As LongPublic Const GWL_WNDPROC = -4
    Global lpPrevWndProc As Long
    Global gHW As Long
    Public Sub Hook()
       lpPrevWndProc = SetWindowLong(gHW, GWL_WNDPROC, _
       AddressOf WindowProc)
    End SubPublic Sub Unhook()
       Dim temp As Long
       temp = SetWindowLong(gHW, GWL_WNDPROC, _
       lpPrevWndProc)
    End SubFunction WindowProc(ByVal hw As Long, ByVal uMsg As _
    Long, ByVal wParam As Long, ByVal lParam As Long) As _
    Long
    if uMsg=&H204 then  'rbuttondown
    '做你想做的
    else   Debug.Print "Message: "; hw, uMsg, wParam, lParam
       WindowProc = CallWindowProc(lpPrevWndProc, hw, _
       uMsg, wParam, lParam)
    end if
    End Function'=====FORM
    Private Sub Form_Load()
       gHW = Me.hwnd  '此处可gHW = Text1.hwnd  
    End SubPrivate Sub Command1_Click()
       Hook
    End SubPrivate Sub Command2_Click()
       Unhook
    End Sub
      

  2.   

    首先把windows默认的弹出菜单用API屏蔽
    然后再执行你的程序应该没有问题的