http://expert.csdn.net/Expert/topic/1803/1803226.xml?temp=.5301325

解决方案 »

  1.   

    using System;
    using System.Drawing;
    using System.Runtime.InteropServices;
    namespace MenuIcons
    {
    /// <summary>
    /// Class1 的摘要说明。
    /// </summary>
    public class MenuIcon
    {
    public System.ComponentModel.Container components = null;
    [DllImport("user32.dll")]
    public static extern IntPtr GetMenu(IntPtr hwnd);
    [DllImport("user32.dll")]
    public static extern IntPtr GetSubMenu(IntPtr hMenu,int nPos);
    [DllImport("user32.dll")]
    public static extern IntPtr GetMenuItemID(IntPtr hMenu, int nPos);
    [DllImport("user32.dll")]
    public static extern int SetMenuItemBitmaps(IntPtr hMenu, IntPtr nPosition, int wFlags, IntPtr hBitmapUnchecked, IntPtr hBitmapChecked);
    public MenuIcon()
    {
    //
    // TODO: 在此处添加构造函数逻辑

    }
    /// <summary>
    /// 创建菜单栏图标
    /// </summary>
    /// <param name="handle">窗口句柄</param>
    /// <param name="submenuID">主菜单的ID号</param>
    /// <param name="menuitemID">菜单项的ID号</param>
    /// <param name="filepath">要设置的菜单图片的文件路径</param>
    /// <returns></returns>
    public int SetIcon(System.IntPtr handle,int submenuID,int menuitemID,string filepath)
    {
    IntPtr intptrMenu,intptrSubMenu,intptrMenuItemID = IntPtr.Zero;
    int intRet = 0; intptrMenu = GetMenu(handle);
    intptrSubMenu = GetSubMenu(intptrMenu,submenuID);

    intptrMenuItemID = GetMenuItemID(intptrSubMenu,menuitemID);
    Bitmap myBitmap = new Bitmap(filepath);
    IntPtr intp = myBitmap.GetHbitmap();
    intRet = SetMenuItemBitmaps(intptrMenu, intptrMenuItemID, 0 ,intp, intp);
    return intRet;
    }
    }
    }
      

  2.   

    http://expert.csdn.net/Expert/TopicView1.asp?id=2044793