菜单图标范例
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 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
Const MF_BYPOSITION = &H400&
Private Sub Form_Load()
Dim mHandle As Long, lRet As Long, sHandle As Long, sHandle2 As Long
mHandle = GetMenu(hwnd)
sHandle = GetSubMenu(mHandle, 0)
lRet = SetMenuItemBitmaps(sHandle, 0, MF_BYPOSITION, ImageList1.ListImages(1).Picture, ImageList1.ListImages(1).Picture)
lRet = SetMenuItemBitmaps(sHandle, 1, MF_BYPOSITION, ImageList1.ListImages(2).Picture, ImageList1.ListImages(2).Picture)
lRet = SetMenuItemBitmaps(sHandle, 3, MF_BYPOSITION, ImageList1.ListImages(3).Picture, ImageList1.ListImages(3).Picture)
lRet = SetMenuItemBitmaps(sHandle, 4, MF_BYPOSITION, ImageList1.ListImages(4).Picture, ImageList1.ListImages(4).Picture)
sHandle = GetSubMenu(mHandle, 0)
sHandle2 = GetSubMenu(sHandle, 0)
lRet = SetMenuItemBitmaps(sHandle2, 0, MF_BYPOSITION, ImageList1.ListImages(5).Picture, ImageList1.ListImages(5).Picture)
End Sub
Private Sub mnuOpen_Click()
If mnuOpen.Checked = True Then
mnuOpen.Checked = False
Else: mnuOpen.Checked = True
End If
End Sub
'然后在SetMenuItemBitmaps()我们把后两项设为不同的图片即可,有兴趣的话试一试。
End Sub
