Menütext in MFC

  • C++

  • williwichtig
  • 1313 Aufrufe 4 Antworten

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • Menütext in MFC

    Hallo,

    ich habe ein Dialoganwendung in MFC 6 mit Menü.
    Aufbau ist in etwa so:

    Quellcode

    1. Datei Einstellungen
    2. +--Laden +---Optionen
    3. +--Speichern +---Port
    4. +--Beenden +---LPT1
    5. +---LPT2


    Die Eintrage "Datei" und "Einstellungen" bekomme ich mit
    ModifyMenu und MF_BYPOSITION

    Auf die Einträge "Laden", "Speichern" usw kann ich mit
    ModifyMenu und MF_COMMAND zugreifen, die haben ja eine ID.

    Mir geht es um den Popup-Eintrag "Port"
    Der hat keine ID und ich habe alle Werte für
    BYPOSITION von 0-65535 durchprobiert -> Nix geht. :confused::confused:

    Kann mir jemand verraten, wie ich in MFC den Text eines PopupMenüs ändere ?

    Gruss und Danke !
  • Hallo,
    mir ist nicht ganz klar was Du jetzt für ein Problem hast.
    Das Menü sollte doch in den Ressourcen als Menü vorhanden sein,
    z.B als IDR_MENU1.
    Der Eintrag Port hat dann dort die "Eigenschaft" Popup und somit auch keine ID.
    Du kannst den Text dann in den Ressourcen mit Doppelklick ändern.

    Ansosten gibt es bei ModifyMenu auch das nFlags MF_POPUP.
    Spielt bei nIDNewItem eine Rolle.
    Mit F1 mal die Hilfe aufrufen und lesen...

    Grüsse
    biernase
  • Ok, war vieleicht etwas undeutlich geschrieben.

    Ich möchte den Text zur Laufzeit ändern.
    Dass das im Ressourceneditor geht ist mir klar,
    auch dass dieser Eintrag keine ID hat. Das habe ich ja geschrieben.
    Die Hilfe habe ich natürlich durchsucht und auch schon diverse Seiten, die
    mir die Suchmaschine ausgespuckt hat; leider ohne Erfolg.
    --- sonst würde ich hier nicht posten ---

    Mit welchem Befehl kann ich diesen Text zur Laufzeit des Programms ändern?

    Danke, Gruss und
    Prost ;)
  • Ich weiß gezz immer noch nicht was Du da vorhast,
    aber ich würde es so machen:
    Menü in den Ressourcen kopieren, anpassen und die Menüs austauschen:

    PHP-Quellcode

    1. CMenu *px_menu_alt = new CMenu ();
    2. CMenu *px_menu_neu = new CMenu ();
    3. px_menu_alt -> LoadMenu (IDR_MENU_ALT);
    4. px_menu_neu ->LoadMenu (IDR_MENU_NEU);
    5. SetMenu (px_menu_neu);
    6. px_menu_alt ->Detach ();


    Grüsse

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von biernase ()

  • Vielen Dank für die Antwort, das ist eine ganz gute Möglichkeit, wäre in meinem Fall aber nicht so günstig.

    Ich möchte die Sprache des Programms umschaltbar machen.
    Ich habe eine Spachdatei mit allen Texten. Nun können zusätzlich
    weitere solcher Dateien vom Anwender erstellt bzw. übersetzt und gewählt werden.

    Ich kann auch alle Texte im Menü ändern lediglich diesen einen "untergeordneten" Popup Eintrag nicht.

    Wenn ich nun mehrere Menüressourcen erzeuge kann ich zwar umschalten, muss aber bei jeder neuen Sprache das Programm neu compilieren.

    Gruss