Text des Menüs ändern
-
Hallo,
ich benutze den Resourceneditor von Visual Studio 6 und habe mir damit ein Menü für mein Windows Programm erzeugt. Welche Möglichkeiten gibt es, den Text des Menüs zu ändern? Z.B. möchte ich aus Datei -> File machen oder aus Beenden -> Quit. Ich möchte mir !keine! Sprachdateiversionen im Resourceneditor erzeugen, sondern über Variable komplett freie Zuweisungen vornehmen können, ist da der Resourceneditor von VS eigentlich das richtige Werkzeug? Welche Alternativen gibt es? Wo finde ich Infos?
Yo danke schon mal
-
Du kannst mit SetMenuItemInfo die einzelnen Menupunkte verändern.
Letztendlich vergibst du ja im Resourceeditor für jeden Eintrag eine eigene ID,
über die nimmst du dann auf die Menupunkte bezug.Alternativ kannst du natürlich auch das Menu komplett zur Laufzeit im Speicher erstellen.
-
Ich tendiere für Multilingualte Programme zu diesem System:
http://www.mpdvc.de/artikel/MultilingualeProgramme.htm
-
@SeppSchrot
Yep genau so geht's. Funktioniert wunderbar.@Martin Richter
Danke für den Hinweis, das muß ich mir erst noch mal genau durchlesen und schauem ob das für meinen Einsatzzweck genauso geeignet ist, wie ich es mir vorstelle.
-
@SeppSchrot
Jetzt hab ich da aber noch eine Frage. Wie kann ich den Text eines Pulldownmenüs ändern, die Items in einem Pulldeonmenü haben ja über dem Resourceneditor klare IDs zugewiesen bekommen, siehe
MENUITEM "E&xit", ID_EXIT,MFT_STRING,MFS_ENABLEDaber die Pulldown sehen alle gleich aus, siehe
POPUP "&File", 65535,MFT_STRING,MFS_ENABLED oder POPUP "&Options", 65535,MFT_STRING,MFS_ENABLEDwie rufe ich die jetzt auf, um sie zu verändern?
für "Exit" hatte ich diesen Code ausgeführtGetMenuItemInfo(GetMenu(Hauptfenster), ID_EXIT, FALSE, &mii); mii.cbSize = sizeof(mii); mii.fMask = MIIM_TYPE; mii.fType = MFT_STRING; mii.dwTypeData = "&Beenden"; SetMenuItemInfo(GetMenu(Hauptfenster),ID_EXIT, FALSE, &mii);Ich hoffe auch hierfür gibt's Rat, danke schon mal.
-
Du musst in diesem Fall mit ByPosition TRUE arbeiten. Popup Menues haben keine ID diese können nur über den Index oder die Position angesprochen werden.
-
Bedeutet dies, das ich bei Item 0 anfangen muss und per Schleife den Item erhöhen muss, bis die Variable "dwTypeData" den Wert enthält der geändert werden soll? Wenn ja, wie weiß ich wieviele Items mein Menü hat, nur für den Fall, daß sich die Schleife nicht tot läuft, weil ich vieleicht irgendwo einen Schreibfehler beim String reingebaut habe, und so nach der Anzahl der vorhanden Items rausspringen kann?