我用API在MDI窗体上创建了一些菜单,并想用它了触发事件,下面是我的源码:
Public Const MF_POPUP = &H10&
Public Const MF_STRING = &H0&Public Const MF_SEPARATOR = &H800&
Public Const MF_BYPOSITION = &H400&
Public procOld As Long
Public Enum IDM
    a = 128
    b
    c
    d
    e
End Enum
Public Declare Function CallWindowProc Lib "user32" Alias "CallWindowProcA" ()
Public Declare Function CreateMenu Lib "user32" () As Long
Public Declare Function CreatePopupMenu Lib "user32" () As Long
Public Declare Function InsertMenu Lib "user32" Alias "InsertMenuA" (ByVal hMenu As Long, ByVal nPosition As Long, ByVal wFlags As Long, ByVal wIDNewItem As Long, ByVal lpNewItem As Any) As Long
Public Declare Function ModifyMenu Lib "user32" Alias "ModifyMenuA" (ByVal hMenu As Long, ByVal nPosition As Long, ByVal wFlags As Long, ByVal wIDNewItem As Long, ByVal lpString As Any) As LongPublic Declare Function SetMenu Lib "user32" (ByVal hWnd As Long, ByVal hMenu As Long) As Long
Public Declare Function DrawMenuBar Lib "user32" (ByVal hWnd As Long) As LongPublic Declare Function GetSubMenu Lib "user32" (ByVal hMenu As Long, ByVal nPos As Long) As LongPublic Declare Function SetWindowLong Lib "user32" Alias "SetWindowLongA" (ByVal hWnd&, ByVal nIndex&, ByVal dwNewLong&)Option Explicit
Dim a As Integer
Dim hMenu As Long
Dim hFileSubMenu As Long
Dim hHelpSubMenu As Long
Private Sub MDIForm_Activate()
    If a = 0 Then
        hMenu = CreateMenu()
        hFileSubMenu = CreatePopupMenu()
        hHelpSubMenu = CreatePopupMenu()
    
        InsertMenu hMenu, 0, MF_BYPOSITION, 0, "&File"
        InsertMenu hMenu, 1, MF_BYPOSITION, 1, "&Edit"
        InsertMenu hMenu, 2, MF_BYPOSITION, 2, "&View"
        InsertMenu hMenu, 3, MF_BYPOSITION, 3, "&Help"
    
        ModifyMenu hMenu, 0, MF_POPUP, hFileSubMenu, "&File"
        hFileSubMenu = GetSubMenu(hMenu, 0)
        InsertMenu hFileSubMenu, 0, MF_BYPOSITION, 1001, "&New"
        InsertMenu hFileSubMenu, 1, MF_BYPOSITION Or MF_SEPARATOR, 1002, ""
        InsertMenu hFileSubMenu, 2, MF_BYPOSITION, 1003, "&Exit"
        InsertMenu hFileSubMenu, 3, MF_BYPOSITION, 1004, "&测试"
    
        ModifyMenu hMenu, 3, MF_POPUP, hHelpSubMenu, "&Help"
        hHelpSubMenu = GetSubMenu(hMenu, 3)
        InsertMenu hHelpSubMenu, 0, MF_BYPOSITION, 4001, "&About..."
        InsertMenu hHelpSubMenu, 1, MF_BYPOSITION Or MF_SEPARATOR, 4002, ""
        InsertMenu hHelpSubMenu, 2, MF_BYPOSITION, 4003, "&Help"
        SetMenu Me.hWnd, hMenu
    
        DrawMenuBar Me.hWnd
    End If
    a = 1
    procOld = SetWindowLong(Me.hWnd, GWL_WNDPROC, AddressOf WindowProc)
End Sub
'
 Sub WindowProc(ByVal hWnd As Long, ByVal iMsg As Long, ByVal wParam As Long, ByVal lParam As Long)   Select Case iMsg
      Case WM_SYSCOMMAND
         Select Case wParam
         Case IDM.a
            MsgBox "您单击了'演示菜单一',事件:Cliked"
         Case IDM.b
            MsgBox "'您单击了'选择后关闭' 事件:Cliked"
         Case IDM.c
            MsgBox "好了,再见,欢迎下次光临枕善居", vbInformation, "再见"
            Unload Form1
            Exit Sub
         Case IDM.e
            MsgBox "您单击了'演示菜单二' 事件:Cliked"
         End Select
   End Select
    CallWindowProc procOld, hWnd, iMsg, wParam, lParam
End Sub但示我一运行,系统会提示:编译错误:操作符addressof 使用无效!
请教高手门指点迷津,不胜感激!