Icons in Menüs?
-
SetMenuItemBitmaps wirst du für diese Aufgabe nicht verwenden können. Du musst die Menüs selbst zeichnen -> ownerdrawn Menus.
Vielleicht hilft dir Google Groups diesbezüglich weiter:
-
Ich schätze mal, das die bereits die neuere Version der MENUITEMINFO-Struktur verwenden
#define WINVER 0x0500 #include <windows.h> mii.fMask = MIIM_STRING | MIIM_BITMAP; SetMenuItemInfo();
-
Selbstverständlich kann ich mich auch irren, wie Hepi zeigen konnte

-
Das war eigentlich nicht meine Absicht...

-
hi Hepi, danke für deine Hilfe!
Das hat mich wenigstens ein Stückchen weitergebracht!
Aber ich habe immernoch zwei kleinere Probleme.1. Wenn ich ich zuerst mit GetMenuItemInfo() die MENUITEMINFO-Struktur hole, dann das Bitmap setze und ändere, ist auf einmal der Text verschwunden. Mein Code:
memset(&menuInfo, 0, sizeof(MENUITEMINFO)); menuInfo.cbSize = sizeof(MENUITEMINFO); GetMenuItemInfo(hmMain, IDM_FILE_NEW, FALSE, &menuInfo); menuInfo.fMask = MIIM_BITMAP | MIIM_STRING; menuInfo.hbmpItem = (HBITMAP) LoadImage (gInstance, MAKEINTRESOURCE(IDI_FILENEW), IMAGE_BITMAP, 0, 0, LR_SHARED); SetMenuItemInfo(hmMain,IDM_FILE_NEW, FALSE, &menuInfo);Und der Screenshot dazu (die Transparenz spielt erstmal keine Rolle ;)): http://mitglied.lycos.de/jmksf/shots/menu1.gif
2. Wenn ich dann ohne das GetMenuItemInfo() mache und den Text nochmal manuell setze, dann sieht's so aus: http://mitglied.lycos.de/jmksf/shots/menu2.gif. Man beachte den viel zu breiten Abstand nach links!!!
so sieht das in anderen Windows-Programmen ja nicht aus ...Hier mein Code der zur o.g. Ausgabe führt:
memset(&menuInfo, 0, sizeof(MENUITEMINFO)); menuInfo.cbSize = sizeof(MENUITEMINFO); //GetMenuItemInfo(hmMain, IDM_FILE_NEW, FALSE, &menuInfo); menuInfo.fMask = MIIM_BITMAP | MIIM_STRING; menuInfo.dwTypeData = "&New"; menuInfo.hbmpItem = (HBITMAP) LoadImage (gInstance, MAKEINTRESOURCE(IDI_FILENEW), IMAGE_BITMAP, 0, 0, LR_SHARED); SetMenuItemInfo(hmMain,IDM_FILE_NEW, FALSE, &menuInfo);Wisst ihr da ggf. noch ne Lösung? Der Beschreibung von MENUITEMINFO in der MSDN konnte ich nicht entnehmen woher dieser Breite abstand kommt...

Danke & Gruss,
code_pilot
-
jau na super denn jetzt hab ichs mal auf NT getestet, da funzt nochnicht mal das mit dem o.g. Beispiel (wird kein Bildchen angezeigt)
shit.
Das muss doch irgendwie einfacher gehen... aber NIRGENDWO findet man Hilfe
!Gruss,
~code_pilot
-
Soweit ich weiß muss man das Menü selbst zeichnen.
Guck doch auf CodeProject.com nach.
-
@AFAIR: Habs mal angeschaut ist aber nur MFC, ich kann mit diesen Klassen nicht wirklich was anfangen bzw. konnte die Files nicht runterladen

Aber trotzdem danke...
Gruss,
~code_pilot
-
Du musst dich auf der Seite anmelden um dort was runterzuladen.
Ok, aber wenn du damit sowieso nichts anfangen kannst...

-
Hier noch eine Alternative:
Creating an Internet Explorer-style Menu Bar