解决方案 »

  1.   

    WinAPIOverridehttp://jacquelin.potier.free.fr/winapioverride32/
      

  2.   

    用HOOK处理。
    窗体代码:
    Option ExplicitPrivate Sub Form_Load()
       Call SetHOOK(RichTextBox1.hWnd)
    End SubPrivate Sub Form_Unload(Cancel As Integer)
       Call UnHOOK
    End Sub标准模块代码:
    Option ExplicitPrivate Declare Function SetWindowLong Lib "User32" Alias "SetWindowLongW" (ByVal hWnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As Long
    Private Declare Function CallWindowProc Lib "User32" Alias "CallWindowProcW" ( _
                                        ByVal lppreWinProc As Long, _
                                        ByVal hWnd As Long, ByVal Msg As Long, _
                                        ByVal wParam As Long, ByVal lParam As Long) As Long
    Private mOldHWND  As Long
    Private mOldProc  As Long
    Private mHookFlag As LongPublic Sub SetHOOK(ByVal hWnd As Long)
       If (hWnd = 0&) Then Exit Sub
       If (mOldProc) Then Call UnHOOK
       mOldHWND = hWnd
       mOldProc = SetWindowLong(hWnd, -4&, AddressOf MyWinProc)
    End SubPublic Sub UnHOOK()
       If (mOldProc = 0&) Then Exit Sub
       Call SetWindowLong(mOldHWND, -4&, mOldProc)
       mOldProc = 0&
    End SubPrivate Function MyWinProc(ByVal hWnd As Long, ByVal uMsg As Long, _
                               ByVal wParam As Long, ByVal lParam As Long) As Long
       If (uMsg = &H20A&) Then wParam = wParam And &HFFFFFFF3
       MyWinProc = CallWindowProc(mOldProc, hWnd, uMsg, wParam, lParam)
    End Function