Den Text eines Resourcen-Menüs ändern...



  • Hallo libe Commuity,

    Wie kann ich den Text eines Menüeintrags ändern, den ich über den Resourceneditor erstellt habe ? (Compiler: MV C++ 6.0)

    Danke schon mal....

    PS: Ein Beispiel:

    Datei  | Ansicht
    -------|---------
    Öffnen |
    Beenden|
    --------
    
    ==>
    
    File   | View
    -------|---------
    Open   |
    Exit   |
    --------
    

    so in etwa.... 😉


  • Mod

    Du möchtest also ein Multilinguales Programm schreiben?
    Der Artikel zielt zwar hauptsächlich auf die MFC, aber die Idee ist für WinAPI pur indentisch:
    http://www.mpdvc.de/artikel/MultilingualeProgramme.htm



  • Martin Richter schrieb:

    Du möchtest also ein Multilinguales Programm schreiben?

    jop!, aber das hab ich schon geschafft 😉 ...es geht NUR darum, wie ich über n Resourceneditor erstellte (Programm-)Menüs nachträglich ändern kann!!!

    und das dürfte in deinem Artikel nicht drin stehen...hab ihn zwar nur überflogen, aber nix gefunden...(außerdem kann ich mit dem Demoprojekt nix anfangen, da ich nicht den passenden Compiler hab 😞 )...kannste mir vllt. trotzdem helfen ?



  • In den meisten Fällen wird es warscheinlich einfach so gemacht, das jeweils eine DLL für jede unterstützte Sprache angelegt wird... darein packt man dann die Resourcen schon direkt in der Sprache... und je nach dem, welche Sprache gewünscht ist... DLL laden...



  • jo stimmt, das ich da nicht eher drauf gekommen bin 🙄


  • Mod

    Die DLL muss nicht einmal eine DllMain enthalten und kann als Resource Only DLL mit /NOENTRY gelinkt werden.



  • HEY!!, das is gut!!!

    kannst du mir vllt. kurz beschreiben wir man das macht (winzig kleinen Code)
    ...
    brauch bspw. auch cpp Files =?
    wo muss ich /NOENTRY denn 'hinschreiben ?

    Martin Richter schrieb:

    Die DLL muss nicht einmal eine DllMain enthalten und kann als Resource Only DLL mit /NOENTRY gelinkt werden.

    aber RESPEKT: verdammt gute Idee!!!!! ➡ 💡 👍 👍 👍



  • [cuote]brauch bspw. auch cpp Files =? [/quote]Nein. Wo für?

    wo muss ich /NOENTRY denn 'hinschreiben ?

    /NOENTRY (No Entry Point)


  • Mod

    Tactics schrieb:

    brauch bspw. auch cpp Files =?

    Wenn ich mich nicht ganz und gar irre musst Du bei alteren VS Versionen mindestens eine leere CPP Datei im Projekt haben. Da sonst das Projekt nicht gebuildet werden kann.
    VS2003 kommt nur mit einer rc Datei im Projekt aus.

    /NOENTRY verbirgt sich hinter dem Schalter "Resource only DLL" in den Advanced Einstellungen des Linkers.



  • Schau Dir mal diesen Link an:
    http://pronix.linuxdelta.de/C/win32/win32_4.shtml#3

    Etwa ab der Mitte der Seite wird die Erstellung eines mehrsprachigen Menüs beschrieben, bei dem man die Sprache abhängig von einem Menüpunkt einstellen kann.



  • Elektronix schrieb:

    Schau Dir mal diesen Link an:
    http://pronix.linuxdelta.de/C/win32/win32_4.shtml#3

    Etwa ab der Mitte der Seite wird die Erstellung eines mehrsprachigen Menüs beschrieben, bei dem man die Sprache abhängig von einem Menüpunkt einstellen kann.

    dat ist aber extrem umständlich da ist eine resource DLL viel besser, außerdem kann man die sprach dlls dann auch später erstellen lassen von anderen personen und man muss am programm keine änderung vornehmen



  • robbel schrieb:

    dat ist aber extrem umständlich da ist eine resource DLL viel besser,

    Finde ich nicht. Der Aufwand zum Erstellen des Menüs ist der gleiche, und Du sparst Dir das erstellen und Kompilieren der DLL. Der einzige Vorteil scheint mir zu sein, daß man das bei DLLs nachträglich machen kann. Ist aber wohl Geschmacksache.



  • nee bei dem beispiel auf pronix musst du überall if( option == english ) LoadResource( English ) else LoadResource( Deutsch ) machen für JEDEN String den du aus einer Resource laden willst ist das so ein umständliches if else statement...wenn du das mit 10 sprachen machst hast du da jedes mal ein ellenlanges if/else/switch statement



  • Martin Richter schrieb:

    Tactics schrieb:

    brauch bspw. auch cpp Files =?

    Wenn ich mich nicht ganz und gar irre musst Du bei alteren VS Versionen mindestens eine leere CPP Datei im Projekt haben. Da sonst das Projekt nicht gebuildet werden kann.
    VS2003 kommt nur mit einer rc Datei im Projekt aus.

    /NOENTRY verbirgt sich hinter dem Schalter "Resource only DLL" in den Advanced Einstellungen des Linkers.

    habs mit MV C++ 6.0 getestet, da reichen *.rc Dateien, ALSO keine Cpp's...

    so danke euch allen!

    PS: ich machs mit ResourceOnlyDlls 😃 😃 💡


Anmelden zum Antworten