做成那样的菜单有两种方法(其他的方法实现的效果太次):
一:自画菜单:
我编的自画菜单:http://go6.163.com/910grtd/vb/wdzp/DrawMenu-S.htm(有注释!特地为想学自画菜单的人写的)
http://go6.163.com/910grtd/vb/wdzp/CoolGUI.htm(效果比较好,但没有注释)
http://go6.163.com/910grtd/vb/wdzp/ZXPMenu.htm(XP风格的菜单。可是不知道为什么,Win2000下运行不了)二:用窗体模拟菜单:
http://www.dapha.net/vb/list.asp?id=748
XP下拉菜单(影子效果)

解决方案 »

  1.   

    这个我知道,代码如下:
    Option Explicit
    Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As Any, ByVal lpWindowName As String) As Long
    Declare Function SetActiveWindow Lib "user32" (ByVal hwnd As Long) As Long
    Public 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 SetMenuItemBitmaps Lib "user32" (ByVal hMenu As Long, ByVal nPosition As Long, ByVal wFlags As Long, _
        ByVal hBitmapUnchecked As Long, ByVal hBitmapChecked As Long) As LongPublic Const MF_BYPOSITION = &H400&Public Function BitmapInMenu(frm As Form)
    Dim mHandle As Long, lRet As Long, sHandle As Long, sHandle2 As LongmHandle = GetMenu(frm.hwnd)
    sHandle = GetSubMenu(mHandle, 0)lRet = SetMenuItemBitmaps(sHandle, 0, MF_BYPOSITION, Form28.ImageList1.ListImages(1).Picture, Form28.ImageList1.ListImages(1).Picture)
    lRet = SetMenuItemBitmaps(sHandle, 1, MF_BYPOSITION, Form28.ImageList1.ListImages(2).Picture, Form28.ImageList1.ListImages(2).Picture)
    lRet = SetMenuItemBitmaps(sHandle, 3, MF_BYPOSITION, Form28.ImageList1.ListImages(3).Picture, Form28.ImageList1.ListImages(3).Picture)
    lRet = SetMenuItemBitmaps(sHandle, 4, MF_BYPOSITION, Form28.ImageList1.ListImages(4).Picture, Form28.ImageList1.ListImages(4).Picture)mHandle = GetMenu(frm.hwnd)
    sHandle = GetSubMenu(mHandle, 1)lRet = SetMenuItemBitmaps(sHandle, 0, MF_BYPOSITION, Form28.ImageList1.ListImages(5).Picture, Form28.ImageList1.ListImages(5).Picture)
    lRet = SetMenuItemBitmaps(sHandle, 1, MF_BYPOSITION, Form28.ImageList1.ListImages(6).Picture, Form28.ImageList1.ListImages(6).Picture)End Function
      

  2.   

    但是在菜单中要加载的图标必须是bmp格式的,ico的不行哦
      

  3.   

    用SetMenuItemBitmaps加的图标只能是13*13 16色的
    而且白色为透明色
    既无法显示白色
      

  4.   

    来迟了    hMenu& = GetMenu(Form1.hwnd)
        hSubMenu& = GetSubMenu(hMenu&, 0)
        hID& = GetMenuItemID(hSubMenu&, 0)
        SetMenuItemBitmaps hMenu&, hID&, MF_BITMAP, Picture1.Picture, Picture1.Picture
      

  5.   

    zyl910
     
        贴的不错,cool!
      

  6.   

    pick2103说的对,COOL!谢谢各位!