不用控件可以不可以为菜单添加图片?

解决方案 »

  1.   

    ICO好象不行。为菜单加上图片的大小是有要求的。除非自画。
      

  2.   

    不用控件当然可以,在你的程序中使用自绘菜单技术,很麻烦的,可以到zyl910的主页上下载一个。
      

  3.   

    可以的用API
    Option ExplicitPublic Declare Function GetMenu Lib "user32" (ByVal hwnd As Long) As Long
    Public Declare Function GetSubMenu Lib "user32" (ByVal hMenu As Long, ByVal nPos As Long) As Long
    Public Declare Function GetMenuItemID Lib "user32" (ByVal hMenu As Long, ByVal nPos As Long) As Long
    Public 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
    Public Declare Function GetMenuItemCount Lib "user32" (ByVal hMenu As Long) As Long
    Public Declare Function GetMenuItemInfo Lib "user32" Alias "GetMenuItemInfoA" (ByVal hMenu As Long, ByVal un As Long, ByVal b As Long, lpMenuItemInfo As MENUITEMINFO) As Long
    Public Const MF_BITMAP = &H4&
    Public Const MIIM_ID = &H2
    Public Const MIIM_TYPE = &H10
    Public Const MFT_STRING = &H0&Type MENUITEMINFO
        cbSize As Long
        fMask As Long
        fType As Long
        fState As Long
        hID As Long
        hSubMenu As Long
        hbmpChecked As Long
        hbmpUnchecked As Long
        dwItemData As Long
        dwTypeData As String
        cch As Long
    End Type
    Set PicMenuBMP1.Picture = LoadPicture(App.Path & "\Icos\System\MenuADD.bmp")hMenu = GetMenu(FrmControl.hwnd)
    hSubMenu = GetSubMenu(hMenu, 0)
    hID = GetMenuItemID(hSubMenu, 0)
    SetMenuItemBitmaps hMenu, hID, MF_BITMAP, PicMenuBMP1.Picture, PicMenuBMP1.Picture
      

  4.   

    好象必须是bmp,而且图片大小最好是13*13,否则不能显示完全,另外网上到处都是关于给菜单加图片的,下载来看看就好了