Private Declare Function GetMenu Lib "user32.dll" (ByVal hWnd As Long) As Long
Private Declare Function GetSubMenu Lib "user32.dll" (ByVal hMenu As Long, ByVal nPos As Long) As Long
Private Declare Function SetMenuItemInfo Lib "user32.dll" Alias "SetMenuItemInfoA" (ByVal hMenu As Long, ByVal un As Long, ByVal bool As Boolean, 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_CHECKMARKS As Long = &H8
Private Sub Form_Load()
Dim hMenu As Long
hMenu = GetMenu(Me.hWnd)
hMenu = GetSubMenu(hMenu, 0)
Dim mii As MENUITEMINFO
mii.cbSize = Len(mii)
mii.fMask = MIIM_CHECKMARKS
mii.hbmpChecked = Image1.Picture.Handle
mii.hbmpUnchecked = Image1.Picture.Handle
Debug.Print SetMenuItemInfo(hMenu, 0, True, mii)
Dim mii as MENUITEMINFO
mii.cbSize=len(mii)
mii.fMask=MIIM_CHECKMARKS
mii.hbmpChecked=Image1.Picture.handle
mii.hbmpUnchecked=Image2.Picture.handle
Call SetMenuItenInfo(上层菜单句柄, 菜单ID, False, mii)