Dem Menü ein Bild hinzufügen
-
Hallo dEUs,
ich habe schon via google gesucht. Nur der Suchbegriff war mir nicht
bekannt.HMENU xhmenu = NULL ; xhmenu = ::GetSubMenu(xhmenu,0); //HINSTANCE hInstance = AfxGetInstanceHandle(); HBITMAP hbitmap1 = (HBITMAP)LoadImage(AfxGetInstanceHandle(), MAKEINTRESOURCE(IDB_BITMAP1), IMAGE_BITMAP, 0, 0, LR_DEFAULTCOLOR); SetMenuItemBitmaps (xhmenu, 1, MF_BYPOSITION, hbitmap1, hbitmap1);Leider komme ich noch immer nicht zum Ziel. Ich erhalte keine Fehler,
aber auch kein Bild im Menü.
-
ich hoffe du hast den quellcode an deine gegebenheite angepasst: variablennamen geändert etc. So wie es aussieht hast du das nämlcih nciht getan
-
Doch habe ich, soweit ich es überblicke:
GetSubMenu zeigt auf das erste Menü das angelegt wurde.
IDB_BITMAP1 ist auch vorhanden.Dann der Aufruf über die Position des ersten Menüeintrags:
SetMenuItemBitmaps (xhmenu, 0, MF_BYPOSITION, hbitmap1, hbitmap1);
-
Wie kommst du darauf, dass GetSubMenu auf dein Menü zugreift? Hast du es irgendwo angegeben? Nein!
-
Ok, wenn ich nun GetMenu verwende, dann habe ich doch aber
ein CMenu und kein HMENU mehr
Und das wird doch für SetMenuItemBitmaps benötigt, oder
hab ich es total falsch verstanden?CMenu* mmenu = GetMenu(); CMenu* submenu = mmenu->GetSubMenu(0);Wie bekomme ich denn mein handle auf das CMenu. Sry, der Teil ist
mir total schleierhaft
-
Verwende doch bitte die MSDN:
http://msdn2.microsoft.com/en-us/library/k599xa5a(VS.80).aspx
-
Ich habe mich da eben nochmal durchgewühlt. Und auch schon geschrieben,
dass ich das mit dem HMENU nicht verstehe.Es wäre zumindest nett gewesen mir zu sagen, ob es überhaupt daran liegt.

-
sicher liegt es daran. Aber wenn du programmieren willst, musst du schon auch selbst etwas denken. Ich geb dir nochmal einen Link, ich hoffe dann wird's klarer...
http://msdn2.microsoft.com/en-us/library/wz75szcz(VS.80).aspx
-
Macht man das nicht irgendwie mit
HMENU xhmenu = h.GetSafeHmenu();Nur man muss glaub ich noch IDR_MENU1 laden, woll?
-
Ich habs jetzt auch mal versucht und erhalte kein Bild in meiner
dialogbasierten Anwendung, obwohl ich die Rückgabewerte alle mit !=0
erhalte!!(hier ohne Prüfung der Rückgabewerte)
HMENU xhmenu = LoadMenu(::AfxGetInstanceHandle(),MAKEINTRESOURCE(IDR_MENU1)); HBITMAP hbitmap1 = ::LoadBitmap(::AfxGetInstanceHandle(),MAKEINTRESOURCE(IDB_BITMAP1)); //HBITMAP hbitmap1 = (HBITMAP)LoadImage(::AfxGetInstanceHandle(), MAKEINTRESOURCE(IDB_BITMAP1), IMAGE_BITMAP, 16, 16, LR_DEFAULTCOLOR); ::SetMenuItemBitmaps (xhmenu, 1, MF_BYPOSITION, hbitmap1, hbitmap1);
-
Der Beitrag aus den WinAPI-FAQ funktioniert offenbar auch nicht mehr so wie beschrieben...
Ja, wie gehts denn dann noch, wenn nicht mit SetMenuItemBitmaps
