matthiasr Geschrieben 29. Juli 2002 Geschrieben 29. Juli 2002 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); Zitieren
Klotzkopp Geschrieben 29. Juli 2002 Geschrieben 29. Juli 2002 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 Zitieren
matthiasr Geschrieben 29. Juli 2002 Autor Geschrieben 29. Juli 2002 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 Zitieren
Klotzkopp Geschrieben 29. Juli 2002 Geschrieben 29. Juli 2002 Erläutere doch bitte nochmal ganz detailliert die Struktur Deines Menüs, und was genau Du ändern willst. Das mit "Index 1" und "pos 3" hört sich für mich widersprüchlich an. Zitieren
matthiasr Geschrieben 29. Juli 2002 Autor Geschrieben 29. Juli 2002 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 Zitieren
Klotzkopp Geschrieben 29. Juli 2002 Geschrieben 29. Juli 2002 Wenn in hSubMenu das Handle auf das "Ansicht"-Menü steckt, dann solltest Du auch dieses Handle als ersten Parameter von ModifyMenu verwenden. Zitieren
matthiasr Geschrieben 29. Juli 2002 Autor Geschrieben 29. Juli 2002 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 Zitieren
matthiasr Geschrieben 29. Juli 2002 Autor Geschrieben 29. Juli 2002 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 Zitieren
Narf! Geschrieben 25. Oktober 2005 Geschrieben 25. Oktober 2005 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. Zitieren
Klotzkopp Geschrieben 25. Oktober 2005 Geschrieben 25. Oktober 2005 Wird denn überhaupt irgendein Hotkey unterstrichen? Standardmäßig ist zumindest XP so eingestellt, dass die Unterstriche erst angezeigt werden, wenn man auf die Alt-Taste drückt. Zitieren
Narf! Geschrieben 26. Oktober 2005 Geschrieben 26. Oktober 2005 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? Zitieren
Klotzkopp Geschrieben 26. Oktober 2005 Geschrieben 26. Oktober 2005 Da muss ich mir wohl keine Sorgen machen?Nö. Du kannst das auch umstellen: Eigenschaften von Anzeige -> Darstellung -> Effekte -> Unterstrichene Buchstaben für Tastaturnavigation ausblenden. Zitieren
Empfohlene Beiträge
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.