Menu Item wieder zurückholen

  • Hat jemand eine Idee, wie ich ein Menu Item, welches ich mit _GUICtrlMenu_RemoveMenu() gelöscht habe, wieder zurückholen kann mit allen Untermenüs?

    Beispiel: in Notepad wird der Menueintrag "Hilfe / Help" gelöscht.

    Laut MS

    Zitat

    Deletes a menu item or detaches a submenu from the specified menu. If the menu item opens a drop-down menu or submenu, RemoveMenu does not destroy the menu or its handle, allowing the menu to be reused. Before this function is called, the GetSubMenu function should retrieve a handle to the drop-down menu or submenu.

    Danke.

    Auch am Arsch geht ein Weg vorbei...

    ¯\_(ツ)_/¯

  • Hier zwei Bsp.:

    2 Mal editiert, zuletzt von Bitnugger (24. April 2021 um 19:01)

  • Bitnugger vielen Dank! Funzt wie erwartet!

    :thumbup:

    Jetzt muss ich sehen, ob man auch für das CMD Box Fenster dies anwenden kann.

    Auch am Arsch geht ein Weg vorbei...

    ¯\_(ツ)_/¯

    Einmal editiert, zuletzt von UEZ (24. April 2021 um 19:38)

  • Hallo Bitnugger,

    bei Deinem obriges Script Example 1 kann man ja nur ein Item entfernen.

    Durch eine Schleife kann man ja alle Menü Items mit _GUICtrlMenu_RemoveMenu entfernen.

    Aber wie hole ich die wieder mit einer Schleife zurück?

    Ich möchte gerne von einem externen Program das Menü Item komplett verstecken und nach einem Tastendruck wieder hervorholen.

    Schon mal danke im vorraus.

  • Ich möchte gerne von einem externen Program das Menü Item komplett verstecken und nach einem Tastendruck wieder hervorholen.

    Wenn du sagst komplett, dann meinst du wohl kein Item, sondern ein SubMenu, zB. das "Help Menu" komplett verstecken...

    Hier ein Bsp.:

  • Hallo Bitnugger,

    danke für die Rückantwort, das funktioniert.

    Das Du so schnell Antwortest damit habe ich gar nicht gerechnet.

    Erst einmal frohe Ostern.

    Es geht eigentlich nur um folgendes:

    Ich nutze privat Sketchup Pro 2019, mit sehr vielen Buttons (siehe Screenshot) und deswegen möchte ich gerne das Zeichenhandle

    Local $hWnd = ControlGetHandle($title,"","[CLASS:AfxFrameOrView140u; INSTANCE:1]") manchmal in den Vollbildmodus setzten.

    Um mehr geht es eigentlich nicht, aber...

    Ist das Zeichenhandle im Vollbildmodus sieht man oben immer noch die Menüs (siehe rotes Rechteck),

    und wenn die ganzen Buttons, Afx:ToolBar und Afx:ControlBar, nicht versteckt werden und man will was zeichen,

    springt das Handle AfxFrameOrView140u wieder in den Normalmodus allesdings ohne Rahmen zurück.

    Deswegen verstecke ich alle Afx:ToolBar und Afx:ControlBar da erst dann das Zeichenhandle im Vollmodus bleibt.

    Die Menüs oben sind aber immer noch sichtbar.

    Deswegen der Gedankengang die Menüs oben auch auszublenden und dann wieder wenn man im Normalmodus wechselt wieder da sind.

    Vielleicht schafft man es aber, das das Handle AfxFrameOrView140u im Vollbildmodus bleibt ohne den Rest.

    Vielen Dank schon einmal.

    Einmal editiert, zuletzt von ruby (30. April 2022 um 18:34) aus folgendem Grund: Quellcode aufgeräumt

  • Moin ruby,

    nach Deinem letzten Beitrag denke ich, dass Du das komplette Fenstermenü entfernen willst. Das sollte recht einfach sein:

    Einmal editiert, zuletzt von Velted (18. April 2022 um 12:22)

  • nach Deinem letzten Beitrag denke ich, dass Du das komplette Fenstermenü entfernen willst.

    Klar... da soll einer drauf kommen...

    Code
    WinWaitActive("[CLASS:Notepad]")
    $hWnd = WinGetHandle("[CLASS:Notepad]")

    $hWnd = WinWaitActive("[CLASS:Notepad]")

  • Hi Velted und Bitnugger,

    vielen Dank für die Rückinfo.

    Funktioniert einwandfrei.

    Konnte mich erst jetzt melden da ich mich heute morgen nicht einloggen konnte.

    An beide Danke noch einmal.

    Einmal editiert, zuletzt von ruby (19. April 2022 um 16:22)