做成那样的菜单有两种方法:
一:自画菜单:
我编的自画菜单(有注释!特地为想学自画菜单的人写的):下载:http://go6.163.com/910grtd/vb/wdzp/DrawMenu-S.htm(请用IE下载)二:用窗体模拟菜单:
http://www.dapha.net/soure/form/XP%20(or%20.NET)%20menu%20with%20sh
XP下拉菜单(影子效果)

解决方案 »

  1.   

    To zyf_zsj1():用“SetMenuItemBitmaps”
    只不过只能显示13*13 16色的图片
    VB声明 
    Declare Function SetMenuItemBitmaps Lib "user32" Alias "SetMenuItemBitmaps" (ByVal hMenu As Long, ByVal nPosition As Long, ByVal wFlags As Long, ByVal hBitmapUnchecked As Long, ByVal hBitmapChecked As Long) As Long 
    说明 
    设置一幅特定位图,令其在指定的菜单条目中使用,代替标准的复选符号(√)。位图的大小必须与菜单复选符号的正确大小相符,这个正确大小可以由GetMenuCheckMarkDimensions函数获得 
    返回值 
    Long,非零表示成功,零表示失败。会设置GetLastError 
    参数表 
    参数 类型及说明 
    hMenu Long,菜单句柄 
    nPosition Long,欲设置位图的一个菜单条目的标识符。如在wFlags参数中指定了MF_BYCOMMAND,这个参数就代表欲改变的菜单条目的命令ID。如设置的是MF_BYPOSITION,这个参数就代表菜单条目在菜单中的位置(第一个条目的位置为零) 
    wFlags Long,常数MF_BYCOMMAND或MF_BYPOSITION,取决于nPosition参数 
    hBitmapUnchecked Long,撤消复选时为菜单条目显示的一幅位图的句柄。如果为零,表示不在未复选状态下显示任何标志 
    hBitmapChecked Long,复选时为菜单条目显示的一幅位图的句柄。可设为零,表示复选时不显示任何标志。如两个位图句柄的值都是零,则为这个条目恢复使用默认复选位图 
    注解 
    使用的位图可能由多个条目共享。一旦不再需要,位图必须由应用程序清除,因为windows不能自动对它进行清除
     
      

  2.   

    如要比较现成的位图菜单,可将Delphi的菜单控件(有自动添加位图的功能)做成ActiveX控件(.ocx),然后在VB中直接调用即可。一劳永逸。
      

  3.   

    号码为288794可否将子类化具体方法告知在下。我的E-mail是[email protected]