Menü zur Laufzeit ändern
-
Hallo, ich suche schon verzweifelt und weiß einfach nicht wie ich die Menüeinträge zur Laufzeit verändern kann. Ich habe zum Beispiel folgendes Menü:
Datei
->Öffnen
->Speichern
->BeendenIch würde gerne diese auf Knopfdruck ändern. Vor allem würde ich gerne den Eintrag Datei ändern. Kann mir jemand sagen wie ich das machen kann?
-
naja eventuell kannst du 2 Menus anlegen und per Knopfdruck das entsprechende hinzufügen durch folgenden Befehl:
HMENU hMenu = (HMENU)::LoadMenu(_Module.GetResourceInstance(), MAKEINTRESOURCE(IDR_MAINFRAME)); SetMenu(hMenu);
geht sicher auch eleganter aber so hab ich das mal gemacht und es ging
-
Das wollte ich eben nicht machen. Gibt es keine andere Lösung. So wie ich ein Label zur Laufzeit verändern kann.
-
naja ich hab versuch den text des Menü Labels zu ändern, bekam aber eine Speicherzugriffsverletzung deswegen
-
Das Problem ist halt, dass man die Untermenus ändern kann, da diese eine ID haben. Aber der Hauptmenueintrag wie Datei hat leider keine ID. Kann es sein dass man das überhaupt nicht zur Laufzeit ändern kann?
-
SChau dir doch mal die Klasse CMenu an - DeleteMenu() löscht einen Menüpunkt, InsertMenu() fügt einen neuen neuen Menupunkt ein, ModifyMenu() verändert einen Menüpunkt.
(und alle Funktionen können die verarbeiteten Menüpunkte wahlweise per Command ID oder Position anspechen)