Click here to Skip to main content
Click here to Skip to main content

Adding Images to Menu

, 14 Nov 2002
Rate this:
Please Sign up or sign in to vote.
Adding images to MenuItems

Introduction

This is a simple program which loads a picture to menu controls. MenuItem controls don't have an Image property to load an image. So the only way to do this is by calling Windows API functions. The following are the API functions used. All functions are from User32.dll.

[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);

The Code

intptrMenu = GetMenu(this.Handle);

First get the pointer to the current form's menu.

intptrSubMenu = GetSubMenu(intptrMenu, 0);

Then get the pointer to the first menu's submenu list.

intptrMenuItemID = GetMenuItemID(intptrSubMenu, 0);

In the above code, 0 is the first MenuItem in the submenu list. Thus get the pointer to the first MenuItem .

intRet = SetMenuItemBitmaps(intptrMenu, intptrMenuItemID, 0 ,intp, intp);

intp is the handle to a bitmap. SetMenuItemBitmaps sets the image from the handle to the MenuItem. So when you run the code, no images are loaded.

Then when you hit the LoadImage button, the images get loaded to the menu items.

Have Fun!

License

This article has no explicit license attached to it but may contain usage terms in the article text or the download files themselves. If in doubt please contact the author via the discussion board below.

A list of licenses authors might use can be found here

Share

About the Author

SeeSharp
Web Developer
United States United States
Deva Anbu Daniel is an Application Developer with 2+ years experience in Java,VB and C#. Currently working in Insoft.com(www.insoft.com). His favorite language is C. He's a major fan of Iron Maiden and Metallica and Jethro Tull.

Comments and Discussions

 
Generalit have error Pinmemberwangqiang01514-Apr-07 23:16 
Generalcontext menus Pinmembergorcq28-Feb-07 19:42 
GeneralRe: context menus Pinmembergorcq1-Mar-07 19:00 
Generala simplified method PinmemberJustin Alexander13-Sep-04 5:45 
GeneralTransparence Pinmembermatrix6666-Aug-04 0:18 
GeneralRe: Transparence Pinmemberericsmith1-Apr-05 12:27 
GeneralDr. Gui's answer Pinmembersds11-Dec-03 6:46 
GeneralImage size PinmemberWatson3921-Jan-03 8:23 
GeneralRe: Image size PinmemberMarvin Tsai9-Aug-07 22:56 
GeneralUse invisible toolbar PinsussAnonymous18-Nov-02 21:09 
GeneralRe: Use invisible toolbar PinmemberSue McNaughtan19-Nov-02 0:34 
Questioncolor bitmaps? PinmemberMarc Clifton15-Nov-02 15:50 
Generalgreat job Pinmemberashley_vg15-Nov-02 14:35 
GeneralRe: great job PinmemberSeeSharp18-Nov-02 21:12 
GeneralNative C#, PinmemberJerry Maguire15-Nov-02 2:33 
GeneralRe: Native C#, Pinmembermammiebubba15-Nov-02 20:33 
GeneralRe: Native C#, PinmemberJerry Maguire16-Nov-02 4:44 
GeneralRe: Native C#, PinmemberJamie Nordmeyer18-Nov-02 5:03 

General General    News News    Suggestion Suggestion    Question Question    Bug Bug    Answer Answer    Joke Joke    Rant Rant    Admin Admin   

Use Ctrl+Left/Right to switch messages, Ctrl+Up/Down to switch threads, Ctrl+Shift+Left/Right to switch pages.

| Advertise | Privacy | Mobile
Web02 | 2.8.141022.2 | Last Updated 15 Nov 2002
Article Copyright 2002 by SeeSharp
Everything else Copyright © CodeProject, 1999-2014
Terms of Service
Layout: fixed | fluid