Zum Inhalt springen

Empfohlene Beiträge

Geschrieben

Wieder mal ein Problem mit nem Menü.

(VisualStudio) In einem Meiner Menüpunkte habe ich ein Popup-Menü und ich möchte dessen Namen ändern.

Der Menüpunkt hat den Index 1 und das Popup steht an pos 3 nach einem Seperator.

Schaut Euch doch mal meinen Code an und schreib mir was ich falsch gemacht habe. Nach einigen Versuchen habe ich herausgefunden, dass ich das Richtige Handle fürs SubMenü habe, aber dann nicht das Popup beeinflussen kann.

HMENU hSubMenu;

hSubMenu = GetSubMenu(hMenu,1);

pRLL->LoadString(IDS_LANGUAGE, szStr, sizeof(szStr));

ModifyMenu(hMenu, 1, MF_POPUP, (UINT Menu, szStr);

Geschrieben

Der dritte Parameter von ModifyMenu ist falsch. Der Wert muss entweder MF_BYCOMMAND oder MF_BYPOSITION enthalten, je nachdem, ob der 2. Parameter die Position des Eintrags oder dessen Command-ID beinhaltet. Wenn Du keinen von beiden angibst, geht ModifyMenu von MF_BYCOMMAND aus. Außerdem musst Du noch MF_STRING "reinodern", weil Du ja auch die Beschriftung änderst.

Insgesamt also: MF_POPUP | MF_STRING | MF_BYPOSITION

Geschrieben

Ich komme aber nicht auf die zweite Ebene herunter, ich kann bzw. konnte schon vorher die Einzelnen Menünamen verändern, aber auch mit Deinem Tipp komme ich nicht auf das PopupMenü. Das Problem, liegt meiner Meinung nach, bei der Position. Der Index beginnt in einem Untermenü wieder bei '0', wie kann ich diferenzieren das ich z.B. im Menü Datei das PopupMenp Senden umbenennen möchte?

matthiasr

Geschrieben

OK.

Ich habe ein Menü mit den Menüpunkten "Datei", "Ansicht" und "?". In dem Menü "Anischt" gibt es ein Popupmenü, "Sprache". Genau dieses Popupmenü , "Sprache" möchte ich beeinflussen. Ich kann aber, auch mit Deiner Anleitung, nur die erste Ebene, also "Datei", "Ansicht" und "?" beeinflussen. Ich habe aber das richtige Handle zum Menü "Ansicht", dies konnte ich feststellen als ich versuchte dieses Menü in Menü "Datei" zu erstellen. Mag sich komisch anhören aber es ging. Nun fehlt mir aber das Handle bzw. der Zugriff auf das Popupmenü "Sprache" . Darum geht es bei mir.

Ich hoffe das ich es nun verständlicher erklärt habe.

matthaisr

Geschrieben

Ich nutze nun diese Zeile

ModifyMenu(hSubMenu, 3, MF_POPUP | MF_STRING | MF_BYPOSITION, (UINT)hSubMenu, szStr);

damit konnte ich zwar den Namen des Popups beeinflussen, nun ist aber das Popupmenü leer. Wenn ich es mit InsertMenu füllen möchte habe ich wiederum nur zugriff auf das Menü Ansicht dessen Handler ich benutze. Wie befülle ich das Popupmenü wieder richtig und, muss ich das überhaupt machen, ist das sinn der Sache oder sollte es nicht doch einfacher gehen. Ich muss wenn ich das Menü "Datei" umbenenne auch nicht das ganze Menü wieder befüllen?

matthiasr

Geschrieben

So ein Schmuddl,

mit

ModifyMenu(hSubMenu, 3, MF_STRING | MF_BYPOSITION, (UINT)hSubMenu, szStr);

also ohne MF_POPUP haut es wunderbar hin.

Ist programmieren nicht einfach?

Einfacher wird es wenn man einen guten Klotzkopp hintersich weis.

Wiedereinmal Danke

matthiasr

  • 3 Jahre später...
Geschrieben

Hier muss ich mal einhaken:

Wenn ich als Menü-Eintrag schreibe "&Öffnen", sollte das Ö unterstrichen sein. Ist es aber nicht.


CMenu *pMenu=GetMenu();


pMenu->ModifyMenu(ID_FILE_OPEN, MF_BYCOMMAND, ID_FILE_OPEN, "&Öffnen\tAlt+O");


//ID_FILE_OPEN ist der erste Eintrag im Menü "Datei"

Das \t wird richtig geschrieben. "&&Öffnen" ergibt "&Öffnen" als Eintrag.

Das Code-Beispiel habe ich aus der Hilfe zu "ModifyMenu method" abgeschrieben.

Geschrieben

Erstaunlich!

Wenn ich mit der Maus ins Menü gehe, gibt es keine Unterstreichungen.

Wenn ich aber mit der Tastatur rein gehe, sind sie da.

Da muss ich mir wohl keine Sorgen machen?

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...