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.


  • Mod

    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_ENABLED
    

    aber die Pulldown sehen alle gleich aus, siehe

    POPUP "&File", 65535,MFT_STRING,MFS_ENABLED
    
    oder
    
    POPUP "&Options", 65535,MFT_STRING,MFS_ENABLED
    

    wie rufe ich die jetzt auf, um sie zu verändern?
    für "Exit" hatte ich diesen Code ausgeführt

    GetMenuItemInfo(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.


  • Mod

    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?


Anmelden zum Antworten