用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
private
procedure DoOpenFile( Sender: TObject );创建完菜单项后:
MenuItem1.OnClick := DoOpenFile;
MyFunction函数的声明与OnClick要一样。