假设已经用菜单编辑器建立好如下菜单: 文件 ....打开 ........旧文件 也就是“文件”菜单中有“打开”菜单,“打开”菜单中有“旧文件”菜单项。 下面的代码可以分别在“文件”菜单和“打开”菜单中添加新的菜单项。 如果再使用物图绘图技术的话,能制作出漂亮的XP风格菜单(当然对于你的问题这不是重点)。 ' 运行前先建立好菜单,再添加一个按钮,运行时单击按钮添加菜单项。Option Explicit Private Declare Function GetMenu Lib "user32" (ByVal hwnd As Long) As Long Private Declare Function GetSubMenu Lib "user32" (ByVal hMenu As Long, ByVal nPos As Long) As Long Private Declare Function InsertMenuItem Lib "user32" Alias "InsertMenuItemA" (ByVal hMenu As Long, ByVal un As Long, ByVal bool As Boolean, ByRef lpcMenuItemInfo As MENUITEMINFO) As Long Private Type MENUITEMINFO cbSize As Long fMask As Long fType As Long fState As Long wID As Long hSubMenu As Long hbmpChecked As Long hbmpUnchecked As Long dwItemData As Long dwTypeData As String cch As Long End Type Private Const MIIM_STRING = &H40Private Sub Command1_Click() Dim hMenu As Long, mnuItem As MENUITEMINFO hMenu = GetMenu(Me.hwnd) hMenu = GetSubMenu(hMenu, 0) With mnuItem .cbSize = Len(mnuItem) .fMask = MIIM_STRING .dwItemData = True .wID = 1 .dwTypeData = "新加的文件菜单项" .cch = Len(.dwTypeData) End With InsertMenuItem hMenu, 1, True, mnuItemhMenu = GetSubMenu(hMenu, 0) With mnuItem .cbSize = Len(mnuItem) .fMask = MIIM_STRING .dwItemData = True .wID = 1 .dwTypeData = "新加的打开菜单项" .cch = Len(.dwTypeData) End With InsertMenuItem hMenu, 1, True, mnuItem End Sub
文件
....打开
........旧文件
也就是“文件”菜单中有“打开”菜单,“打开”菜单中有“旧文件”菜单项。
下面的代码可以分别在“文件”菜单和“打开”菜单中添加新的菜单项。
如果再使用物图绘图技术的话,能制作出漂亮的XP风格菜单(当然对于你的问题这不是重点)。
' 运行前先建立好菜单,再添加一个按钮,运行时单击按钮添加菜单项。Option Explicit
Private Declare Function GetMenu Lib "user32" (ByVal hwnd As Long) As Long
Private Declare Function GetSubMenu Lib "user32" (ByVal hMenu As Long, ByVal nPos As Long) As Long
Private Declare Function InsertMenuItem Lib "user32" Alias "InsertMenuItemA" (ByVal hMenu As Long, ByVal un As Long, ByVal bool As Boolean, ByRef lpcMenuItemInfo As MENUITEMINFO) As Long
Private Type MENUITEMINFO
cbSize As Long
fMask As Long
fType As Long
fState As Long
wID As Long
hSubMenu As Long
hbmpChecked As Long
hbmpUnchecked As Long
dwItemData As Long
dwTypeData As String
cch As Long
End Type
Private Const MIIM_STRING = &H40Private Sub Command1_Click()
Dim hMenu As Long, mnuItem As MENUITEMINFO
hMenu = GetMenu(Me.hwnd)
hMenu = GetSubMenu(hMenu, 0)
With mnuItem
.cbSize = Len(mnuItem)
.fMask = MIIM_STRING
.dwItemData = True
.wID = 1
.dwTypeData = "新加的文件菜单项"
.cch = Len(.dwTypeData)
End With
InsertMenuItem hMenu, 1, True, mnuItemhMenu = GetSubMenu(hMenu, 0)
With mnuItem
.cbSize = Len(mnuItem)
.fMask = MIIM_STRING
.dwItemData = True
.wID = 1
.dwTypeData = "新加的打开菜单项"
.cch = Len(.dwTypeData)
End With
InsertMenuItem hMenu, 1, True, mnuItem
End Sub