用API吧;)'*************************含有该菜单的窗体******************************
Private Sub Form_Initialize()
On Error Resume Next
    prevWndProc = GetWindowLong(Me.hWnd, GWL_WNDPROC)
    SetWindowLong Me.hWnd, GWL_WNDPROC, AddressOf WndProc
End Sub
'********************菜单事件模块(mnuWndproc.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 LongFunction WndProc(ByVal hWnd As Long, ByVal msg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long
On Error resume next
If FrmMain.hWnd <> hWnd Or msg <> 273 Then WndProc = CallWindowProc(prevWndProc, hWnd, msg, wParam, lParam): Exit FunctionSelect Case wParam
       case xxxx  
            '在这里做你想做的事
       case else
            debug.print wparam,lparam
End Select
WndProc = CallWindowProc(prevWndProc, hWnd, msg, wParam, lParam)
End Function