为菜单设置图片

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 GetMenuItemID Lib “user32” (ByVal hMenu As Long, ByVal nPos As Long) As Long
Private 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 String) As Long
Private 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 Long
Private Declare Function GetMenuCheckMarkDimensions Lib “user32” () As Long

‘Example:
‘为当前窗体的第 2 组菜单的第 2 项菜单设置 imgMenu(0) 中的图片
‘Call SetMenuPicture(Me, 2, 3, imgMenu(0))

Public Sub SetMenuPicture(ByVal oForm As Form, ByVal iMenu As Integer, ByVal iSubMenu As Integer, ByVal oImage As Image)
On Error Resume Next
Dim lMenu As Long, lSubMenu As Long, lMenuID As Long
lMenu = GetMenu(oForm.hwnd)
lSubMenu = GetSubMenu(lMenu, iMenu)
lMenuID = GetMenuItemID(lSubMenu, iSubMenu)
lRet = SetMenuItemBitmaps(lMenu, lMenuID, 0, oImage.Picture, 0&)
On Error GoTo 0
End Sub

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注