Zum Inhalt springen
View in the app

A better way to browse. Learn more.

Fachinformatiker.de

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Empfohlene Antworten

Veröffentlicht

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);

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

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

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

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

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

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.

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?

Erstelle ein Konto oder melde dich an, um einen Kommentar zu schreiben.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.