很简单的例子,阿愚说很小的位图(13*15)才能用SetMenuItemBitmaps()来显示, 我把两个位图改成32*32的,开始不行,后来能显示一个, 各位试一试,或提供较好的其它办法.'menu bitmap 给菜单加位图
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 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 Const MF_BYCOMMAND = &H0&
Private Const MF_BYPOSITION = &H400&Private Sub Form_Load() Dim lngMenuHwnd As Long
lngMenuHwnd = GetMenu(Me.hWnd)
Dim lngSubMenuHwnd As Long
lngSubMenuHwnd = GetSubMenu(lngMenuHwnd, 0)
SetMenuItemBitmaps lngSubMenuHwnd, 0, MF_BYPOSITION, ImageList1.ListImages(1).Picture.Handle, 0
SetMenuItemBitmaps lngSubMenuHwnd, 1, MF_BYPOSITION, ImageList1.ListImages(2).Picture.Handle, 0
End Sub
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 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 Const MF_BYCOMMAND = &H0&
Private Const MF_BYPOSITION = &H400&Private Sub Form_Load() Dim lngMenuHwnd As Long
lngMenuHwnd = GetMenu(Me.hWnd)
Dim lngSubMenuHwnd As Long
lngSubMenuHwnd = GetSubMenu(lngMenuHwnd, 0)
SetMenuItemBitmaps lngSubMenuHwnd, 0, MF_BYPOSITION, ImageList1.ListImages(1).Picture.Handle, 0
SetMenuItemBitmaps lngSubMenuHwnd, 1, MF_BYPOSITION, ImageList1.ListImages(2).Picture.Handle, 0
End Sub
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货