public class Form1 : System.Windows.Forms.Form
{
private System.ComponentModel.IContainer components;

[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);---------------------------------------------------------------------
private void Form1_Load(object sender, System.EventArgs e)
{
IntPtr intptrMenu,intptrSubMenu,intptrMenuItemID = IntPtr.Zero;
int intRet = 0;
intptrMenu = GetMenu(this.Handle);
intptrSubMenu = GetSubMenu(intptrMenu, 0);
intptrMenuItemID = GetMenuItemID(intptrSubMenu, 0);
Bitmap myBitmap=new Bitmap(System.Environment.CurrentDirectory+"\\Images\\1.bmp");
Color backColor = myBitmap.GetPixel(1, 1);
myBitmap.MakeTransparent(backColor);
IntPtr intp = myBitmap.GetHbitmap();
intRet = SetMenuItemBitmaps(intptrMenu, intptrMenuItemID, 0 ,intp, intp);
intptrMenuItemID = GetMenuItemID(intptrSubMenu, 2);
myBitmap = new Bitmap(System.Environment.CurrentDirectory+"\\Images\\2.bmp");
backColor = myBitmap.GetPixel(1, 1);
myBitmap.MakeTransparent(backColor);
intp = myBitmap.GetHbitmap();
intRet = SetMenuItemBitmaps(intptrMenu, intptrMenuItemID, 0 ,intp, intp);

解决方案 »

  1.   

    http://www.codeproject.com/cs/menu/VSNetMenu/VSNetMenu_src.zip
      

  2.   

    http://www.codeproject.com/useritems/MenuImage.asp
      

  3.   

    using System;
    using System.Drawing;
    using System.Windows.Forms;class HelpMenu: Form
    {
         Bitmap bmHelp;     public static void Main()
         {
              Application.Run(new HelpMenu());
         }
         public HelpMenu()
         {
              Text = "Help Menu";          bmHelp = new Bitmap(GetType(), "HelpMenu.Bighelp.bmp");          Menu = new MainMenu();
              Menu.MenuItems.Add("&Help");          MenuItem mi     = new MenuItem("&Help");
              mi.OwnerDraw    = true;
              mi.Click       += new EventHandler(MenuHelpOnClick);
              mi.DrawItem    += new DrawItemEventHandler(MenuHelpOnDrawItem);
              mi.MeasureItem += 
                        new MeasureItemEventHandler(MenuHelpOnMeasureItem);          Menu.MenuItems[0].MenuItems.Add(mi);
         }
         void MenuHelpOnMeasureItem(object obj, MeasureItemEventArgs miea)
         {
              miea.ItemWidth  = bmHelp.Width;
              miea.ItemHeight = bmHelp.Height;
         }
         void MenuHelpOnDrawItem(object obj, DrawItemEventArgs diea)
         {
              Rectangle rect = diea.Bounds;
              rect.X += diea.Bounds.Width - bmHelp.Width;
              rect.Width = bmHelp.Width;          diea.DrawBackground();
              diea.Graphics.DrawImage(bmHelp, rect);
         }
         void MenuHelpOnClick(object obj, EventArgs ea)
         {
              MessageBox.Show("Help not yet implemented.", Text);
         }
    }
      

  4.   

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