VB:给菜单加上图标

窗体上加一Picture1控件,设一图片备用:
Private   Declare   Function GetMenu Lib "user32" (ByVal hwnd As LongAs Long
Private Declare Function GetSubMenu Lib "user32" (ByVal hMenu As LongByVal nPos As LongAs Long
Private Declare Function GetMenuItemID Lib "user32" (ByVal hMenu As LongByVal nPos As LongAs Long
Private Declare Function SetMenuItemBitmaps Lib "user32" (ByVal hMenu As LongByVal nPosition As LongByVal wFlags As LongByVal hBitmapUnchecked As LongByVal hBitmapChecked As LongAs Long
Private Const MF_BITMAP = &H4&
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 Declare Function GetMenuItemCount Lib "user32" (ByVal hMenu As LongAs Long
Private Declare Function GetMenuItemInfo Lib "user32" Alias "GetMenuItemInfoA" (ByVal hMenu As LongByVal un As LongByVal b As Boolean, lpMenuItemInfo As MENUITEMINFO) As Boolean
Private Const MIIM_ID = &H2
Private Const MIIM_TYPE = &H10
Private Const MFT_STRING = &H0&

Private Sub addPicOnMenu()
    
Dim lngMenuHwnd As Long
    
Dim lngSubHwnd As Long
    
Dim lngMenuID As Long
    lngMenuHwnd 
= GetMenu(Me.hwnd) '取菜单句柄
    lngSubHwnd = GetSubMenu(lngMenuHwnd, 0'取菜单的第1个子菜单句柄
    lngMenuID = GetMenuItemID(lngSubHwnd, 0'取第1项的ID
    SetMenuItemBitmaps lngMenuHwnd, lngMenuID, MF_BITMAP, Picture1.Picture, Picture1.Picture '// 加图标
End Sub
 

你可能感兴趣的:(VB:给菜单加上图标)