菜单编辑器做不了,写代码修改Menu吧,使用APIBOOL ModifyMenu( HMENU hMnu, // handle to menu UINT uPosition, // menu item to modify UINT uFlags, // menu item flags UINT uIDNewItem, // menu item identifier or handle to drop-down // menu or submenu LPCTSTR lpNewItem // menu item content );
可以使用API函数SetMenuItemBitmaps来为菜单项添加位图。调用该函数时需要用到弹出菜单的句柄,以及要添加的位图。 弹出菜单的句柄可以使用API函数GetMenu与GetSubMenu来获得。位图则可以通过在窗体上放置图像框控件来提供。Option Explicit Private Declare Function GetMenu Lib "user32" _ (ByVal hwnd As Long) As LongPrivate Declare Function GetSubMenu Lib "user32" _ (ByVal hMenu As Long, ByVal nPos As Long) As LongPrivate Declare Function SetMenuItemBitmaps Lib "user32" _ (ByVal hMenu As Long, ByVal nPosition As Long, ByVal wFlags As Long, _ ByVal hBitmapUnchecked As Long, ByVal hBitmapChecked As Long) As LongConst MF_BYPOSITION = &H400&Private Sub Form_Load() Dim mHandle As Long, lRet As Long, sHandle As Long, sHandle1 As Long '获得菜单的句柄 mHandle = GetMenu(hwnd) '获得“文件”菜单的句柄 sHandle = GetSubMenu(mHandle, 0) '为“打开”菜单项添加位图 lRet = SetMenuItemBitmaps _ (sHandle, 0, MF_BYPOSITION, imOpen.Picture.Handle, imOpen.Picture.Handle) '为“保存”菜单项添加位图 lRet = SetMenuItemBitmaps _ (sHandle, 1, MF_BYPOSITION, imSave.Picture, imSave.Picture) '为“打印”菜单项添加位图 lRet = SetMenuItemBitmaps _ (sHandle, 3, MF_BYPOSITION, imPrint.Picture, imPrint.Picture) '获得“其他”菜单的句柄 sHandle = GetSubMenu(mHandle, 1) '获得“帮助”子菜单的句柄 sHandle1 = GetSubMenu(sHandle, 0) '为“内容”菜单项添加位图 lRet = SetMenuItemBitmaps _ (sHandle1, 0, MF_BYPOSITION, imContent.Picture, imContent.Picture) End Sub
HMENU hMnu, // handle to menu
UINT uPosition, // menu item to modify
UINT uFlags, // menu item flags
UINT uIDNewItem, // menu item identifier or handle to drop-down
// menu or submenu
LPCTSTR lpNewItem // menu item content
);
Private Declare Function GetMenu Lib "user32" _
(ByVal hwnd As Long) As LongPrivate Declare Function GetSubMenu Lib "user32" _
(ByVal hMenu As Long, ByVal nPos As Long) As LongPrivate Declare Function SetMenuItemBitmaps Lib "user32" _
(ByVal hMenu As Long, ByVal nPosition As Long, ByVal wFlags As Long, _
ByVal hBitmapUnchecked As Long, ByVal hBitmapChecked As Long) As LongConst MF_BYPOSITION = &H400&Private Sub Form_Load()
Dim mHandle As Long, lRet As Long, sHandle As Long, sHandle1 As Long
'获得菜单的句柄
mHandle = GetMenu(hwnd)
'获得“文件”菜单的句柄
sHandle = GetSubMenu(mHandle, 0)
'为“打开”菜单项添加位图
lRet = SetMenuItemBitmaps _
(sHandle, 0, MF_BYPOSITION, imOpen.Picture.Handle, imOpen.Picture.Handle)
'为“保存”菜单项添加位图
lRet = SetMenuItemBitmaps _
(sHandle, 1, MF_BYPOSITION, imSave.Picture, imSave.Picture)
'为“打印”菜单项添加位图
lRet = SetMenuItemBitmaps _
(sHandle, 3, MF_BYPOSITION, imPrint.Picture, imPrint.Picture)
'获得“其他”菜单的句柄
sHandle = GetSubMenu(mHandle, 1)
'获得“帮助”子菜单的句柄
sHandle1 = GetSubMenu(sHandle, 0)
'为“内容”菜单项添加位图
lRet = SetMenuItemBitmaps _
(sHandle1, 0, MF_BYPOSITION, imContent.Picture, imContent.Picture)
End Sub