Icon/Bitmap in Menü Item

18/12/2011 - 19:40 von Peter Mairhofer | Report spam
Hi,

In einem Plugin will ich ein Menü des Hauptprogramms erweitern von dem
ich lediglich ein HMENU handle habe.

Aber ich bringe es einfach nicht zusammen dass ein Icon angezeigt wird:

MENUITEMINFO item;
ZeroMemory(&item, sizeof(MENUITEMINFO));
item.cbSize = sizeof(MENUITEMINFO);

item.fMask = MIIM_ID;
item.wID = MyCommandID;

item.fMask |= MIIM_BITMAP;
HBITMAP foo = LoadBitmap(g_hDLL, MAKEINTRESOURCE(IDB_BITMAP1));
ASSERT( foo );
item.hbmpItem = foo;
InsertMenuItem(hMenu, 1, TRUE, &item);

Was mache ich falsch? Mit fMask = MIIM_STRING und dwTypeData = "string"
funktioniert es.


Gibt es übrigens einen Trick (ohne Zugriff auf das WndProc) den Eintrag
als Submenü erscheinen zu lassen, aber trotzdem die WM_COMMAND für
MyCommandID zu erhalten?

Setze ich MIIM_SUBMENU und hSubMenu=0, erscheint der Eintrag als
normaler Eintrag; setze ich MIIM_SUBMENU und hSubMenu=CreatePopupMenu()
wird es zwar als Popup Menü angezeigt, jedoch erhalte ich keine
WM_COMMAND Benachrichtigung mehr per MyCommandID :(

LG
Peter
 

Lesen sie die antworten

#1 Martin Richter [MVP]
19/12/2011 - 10:46 | Warnen spam
Hallo Peter!

In einem Plugin will ich ein Menü des Hauptprogramms erweitern von dem
ich lediglich ein HMENU handle habe.

Aber ich bringe es einfach nicht zusammen dass ein Icon angezeigt wird:

MENUITEMINFO item;
ZeroMemory(&item, sizeof(MENUITEMINFO));
item.cbSize = sizeof(MENUITEMINFO);

item.fMask = MIIM_ID;
item.wID = MyCommandID;

item.fMask |= MIIM_BITMAP;
HBITMAP foo = LoadBitmap(g_hDLL, MAKEINTRESOURCE(IDB_BITMAP1));
ASSERT( foo );
item.hbmpItem = foo;
InsertMenuItem(hMenu, 1, TRUE,&item);

Was mache ich falsch? Mit fMask = MIIM_STRING und dwTypeData = "string"
funktioniert es.



Ein Menü muss immer einen Text haben.

Wo ist jetzt Dein Problem, wenn es damit funktioniert?

Martin Richter [MVP] WWJD http://blog.m-ri.de
"A well-written program is its own heaven; a poorly written
program is its own hell!" The Tao of Programming
FAQ: http://www.mpdvc.de Samples: http://www.codeproject.com

Ähnliche fragen