如何用SetMenuItenInfo设置菜单的图标?我不希望使用setmenuitenBitmaps。

解决方案 »

  1.   

    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)
      

  2.   

    没有效果啊。是否可以给出MIIM_CHECKMARKS的值
    和用byPosition做的函数(只要设置主菜单第一项的第一个子菜单的图片就可以了)
      

  3.   

    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 TypePrivate Const MIIM_CHECKMARKS As Long = &H8Private 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)
        
    End Sub
      

  4.   

    如何用SetMenuItenInfo设置菜单的图标?===========================================看起来是图标,可实际上呢
    注意mii.hbmpChecked、mii.hbmpUnchecked,看到hbmp没有,是位图(BMP文件)setmenuitenBitmaps设置的“图标”其实是位图(BMP),而且最好是 13*13的单色位图,因为Windows是使用And运算将位图与菜单背景合并的(这样白色的部分是透明的,只有黑色部分显示)要想实现完美的图形菜单效果,用自绘菜单技术(与三楼说的“菜单重画”是同一个东西,翻译不同而已)
    可参考:http://www.applevb.com/sourcecode/ownerdrawmenu.zip
    演示建立图形菜单,同一般的图形菜单不同,通过该程序建立的菜单当光标移动到菜单项上时,该项一样可以象Word97菜单项一样突出显示。 下载(10.5K) http://www.applevb.com/sourcecode/startupmenu.zip
    该程序通过子分类(Sub Class)技术实现了显示象Windows开始菜单效果的菜单条。 下载(44.7K
      

  5.   

    谢了,我原来用Icon格式,怪不得显示不出来……