一般大型软件中,比如说点击ie的“文件”,在“打开”的前面有个小文件夹的图片。
在vb中这个怎么实现啊?我不会在子菜单的前面添加一个代表意思的小图标。
怎么做的。还请赐教。

解决方案 »

  1.   

    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 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 Const MF_BYPOSITION = &H400&'先添加一个ImageList控件,加几张ICO图标上去.Private Sub Form_Load()
    Dim hmenu As Long
    Dim bmpmenu As Longhmenu = GetMenu(Me.hwnd)
    hmenu = GetSubMenu(hmenu, 0) '第1列菜单
    bmpmenu = SetMenuItemBitmaps(hmenu, 0, MF_BYPOSITION, ImageList.ListImages(1).Picture, ImageList.ListImages(1).Picture) '第1列菜单的第1条菜单
    bmpmenu = SetMenuItemBitmaps(hmenu, 1, MF_BYPOSITION, ImageList.ListImages(2).Picture, ImageList.ListImages(2).Picture) '第1列菜单的第2条菜单
    bmpmenu = SetMenuItemBitmaps(hmenu, 2, MF_BYPOSITION, ImageList.ListImages(5).Picture, ImageList.ListImages(5).Picture) '第1列菜单的第3条菜单hmenu = GetMenu(Me.hwnd)
    hmenu = GetSubMenu(hmenu, 1) '第2列菜单
    bmpmenu = SetMenuItemBitmaps(hmenu, 0, MF_BYPOSITION, ImageList.ListImages(3).Picture, ImageList.ListImages(3).Picture) '第2列菜单的第1条菜单
    bmpmenu = SetMenuItemBitmaps(hmenu, 1, MF_BYPOSITION, ImageList.ListImages(4).Picture, ImageList.ListImages(4).Picture) '第2列菜单的第2条菜单
    End Sub'网上有不少这种菜单控件,效果不错,可以下载来看一下.