Menü ändern
-
Hallo
Wie der Titel schon sagt will ich zur laufzeit die Menüeinträge ändern
Menü wird so erstellthMenu = LoadMenu(hInstance, (LPCTSTR) MAKEINTRESOURCE(IDM_MENU));in der Resource:
IDM_MENU MENUEX { POPUP "Menu", 0, 0, 0 { MENUITEM "Aktualisieren", ID_EINSTELLUNGEN, 0, 0|MFS_DEFAULT MENUITEM "", 0, 0|MFT_SEPARATOR, 0 MENUITEM "Status", 6003, 0, 0 MENUITEM "Beenden", ID_BEENDEN, 0, 0 MENUITEM "Disk 1", 6002, 0|MFT_MENUBARBREAK, 0|MFS_GRAYED MENUITEM "Disk 2", 6005, 0, 0|MFS_GRAYED } }das sieht dann so aus (ist ein Menü das beim Trayicon Linksclick erscheint
daher ist auch nicht der erste Popupeintrag "Menu" zu sehen!)
__________________
|Aktualisieren | Disk 1|
|-----------------| Disk 2|
|Status...........|..........|
|Beenden.......|..........|
----------------------------Nun möchte ich "Disk 1" oder "Disk 2" ändern (in Disk 3 oder Disk 4)
und zwar mit :ModifyMenu(hMenu,0,MF_BYPOSITION|MF_STRING|MF_POPUP,(UINT)GetSubMenu(hMenu,0),"Disk 3");Habs so probiert und zwar in unterschiedlichen Varianten
(mit/ohne GetSubMenu, mit/ohne MF_BYCOMMAND/POPUP/STRING (6002), mit/ohne MF_MENUBARBREAK...usw ...leider ohne Erfolg
Kann mir jemand sagen wie es richtig gehtFrohe Weihachten ! :xmas1:
-
Wenn Disk1 und Disk2 in einem eigenen Untermenü stehen sollen, fehlt mir da ein "Popup" im Resourcenscript.
Such mal hier in den Funktionen:
http://msdn.microsoft.com/en-us/library/ms674866(VS.85).aspxInteressant für Dich: DeleteMenu(), AppendMenu(), InsertMenu(), Insert MenuItem().
-
Danke erstmal !
Elektronix schrieb:
Wenn Disk1 und Disk2 in einem eigenen Untermenü stehen sollen, fehlt mir da ein "Popup" im Resourcenscript.
Das ist kein Popup sondern das macht MF_MENUBARBREAK
Glaube ModifyMenu ist schon der richtige weg, aber wie alle werte richtig setzten ?
-
So hats geklappt:
ModifyMenu(hMenu,5,MF_BYPOSITION|MF_STRING|MF_POPUP|MFS_GRAYED,(UINT)GetSubMenu(hMenu,0),"Disk 3");hat nur am 2te Parameter gelegen
:xmas1: