呵呵,api函数中的any数据类型一定要加上byval
Option Explicit
Private Declare Function CreateMenu Lib "user32" () As Long
Private Declare Function AppendMenu Lib "user32" Alias "AppendMenuA" (ByVal hMenu As Long, ByVal wFlags As Long, ByVal wIDNewItem As Long, ByVal lpNewItem As Any) As Long
Private Declare Function SetMenu Lib "user32" (ByVal hwnd As Long, ByVal hMenu As Long) As Long
Private Declare Function DrawMenuBar Lib "user32" (ByVal hwnd As Long) As Long
Private Const MF_POPUP = &H10&
Private Const MF_ENABLED = &H0&
Private Const MF_STRING = &H0&
Private Sub Form_Click()
Dim hMenu As Long, rc As Long, hSubMenu As Long
hMenu = CreateMenu
rc = SetMenu(Me.hwnd, hMenu)
rc = AppendMenu(hMenu, MF_POPUP Or MF_ENABLED, hSubMenu, ByVal "do you see me?")
rc = DrawMenuBar(Me.hwnd)
End Sub
加在Form_load里很简单 ,只要你加入一条 Form1.Show
Private Declare Function CreateMenu Lib "user32" () As Long
Private Declare Function AppendMenu Lib "user32" Alias "AppendMenuA" (ByVal hMenu As Long, ByVal wFlags As Long, ByVal wIDNewItem As Long, ByVal lpNewItem As Any) As Long
Private Declare Function SetMenu Lib "user32" (ByVal hwnd As Long, ByVal hMenu As Long) As Long
Private Declare Function DrawMenuBar Lib "user32" (ByVal hwnd As Long) As Long
Private Const MF_POPUP = &H10&
Private Const MF_ENABLED = &H0&
Private Const MF_STRING = &H0&
Private Sub Form_Load()
Dim hMenu As Long, rc As Long, hSubMenu As Long
Form1.Show '(^-^)add it
hMenu = CreateMenu
rc = SetMenu(Me.hwnd, hMenu)
rc = AppendMenu(hMenu, MF_POPUP Or MF_ENABLED, hSubMenu, ByVal "do you see me?")
rc = DrawMenuBar(Me.hwnd)