Gibt es eine Möglichkeit, bei AutoIt die gesamte Menübar, die erscheint, sobald man GUICtrlCreateMenu() aufruft, zu verstecken (und danach irgendwann wieder erscheinen zu lassen)?
Ein normales GUICtrlSetState($hMenu, $GUI_HIDE) für alle Menüs versteckt nichts.
Menübar: Verstecken und Zeigen
-
ProgrammingDonkey -
25. April 2015 um 21:34 -
Erledigt
-
-
Lösung durch @Raupi per ShoutBox erhalten:
[autoit]_GUICtrlMenu_SetMenu($hGui,$hMenu) ;Zeigen
[/autoit]
_GUICtrlMenu_SetMenu($hGui, 0) ;Verstecken -
- Offizieller Beitrag
Hier ein Beispiel dazu:
AutoIt: MenuShowHide.au3
Alles anzeigen#include <GUIConstantsEx.au3> #include <MsgBoxConstants.au3> #include <StaticConstants.au3> #include <GuiMenu.au3> Example() Func Example() Local $sDefaultstatus = "Ready" Local $menuOn = True Local $hGui = GUICreate("My GUI menu", 300, 200) Local $idFilemenu = GUICtrlCreateMenu("&File") Local $idFileitem = GUICtrlCreateMenuItem("Open", $idFilemenu) GUICtrlSetState(-1, $GUI_DEFBUTTON) Local $idHelpmenu = GUICtrlCreateMenu("?") GUICtrlCreateMenuItem("Save", $idFilemenu) GUICtrlSetState(-1, $GUI_DISABLE) Local $idInfoitem = GUICtrlCreateMenuItem("Info", $idHelpmenu) Local $idExititem = GUICtrlCreateMenuItem("Exit", $idFilemenu) Local $idRecentfilesmenu = GUICtrlCreateMenu("Recent Files", $idFilemenu, 1) GUICtrlCreateMenuItem("", $idFilemenu, 2) ; create a separator line Local $idViewmenu = GUICtrlCreateMenu("View", -1, 1) ; is created before "?" menu Local $idViewstatusitem = GUICtrlCreateMenuItem("Statusbar", $idViewmenu) GUICtrlSetState(-1, $GUI_CHECKED) Local $Toggle = GUICtrlCreateButton("Switch Menu", 50, 130, 100, 20) GUICtrlSetState(-1, $GUI_FOCUS) Local $idCancelbutton = GUICtrlCreateButton("Cancel", 180, 130, 70, 20) Local $idStatuslabel = GUICtrlCreateLabel($sDefaultstatus, 0, 165, 300, 16, BitOR($SS_SIMPLE, $SS_SUNKEN)) Local $hMenu = _GUICtrlMenu_GetMenu($hGui) GUISetState(@SW_SHOW) Local $sFile ; Loop until the user exits. While 1 Switch GUIGetMsg() Case $idFileitem $sFile = FileOpenDialog("Choose file...", @TempDir, "All (*.*)") If @error <> 1 Then GUICtrlCreateMenuItem($sFile, $idRecentfilesmenu) Case $idViewstatusitem If BitAND(GUICtrlRead($idViewstatusitem), $GUI_CHECKED) = $GUI_CHECKED Then GUICtrlSetState($idViewstatusitem, $GUI_UNCHECKED) GUICtrlSetState($idStatuslabel, $GUI_HIDE) Else GUICtrlSetState($idViewstatusitem, $GUI_CHECKED) GUICtrlSetState($idStatuslabel, $GUI_SHOW) EndIf Case $Toggle Local $Pos = WinGetPos($hGui) $menuOn = Not $menuOn If $menuOn = False Then WinMove($hGui, "", $Pos[0], $Pos[1], $Pos[2], $Pos[3] - 20) _GUICtrlMenu_SetMenu($hGui, 0) Else _GUICtrlMenu_SetMenu($hGui, $hMenu) WinMove($hGui, "", $Pos[0], $Pos[1], $Pos[2], $Pos[3] + 20) EndIf Case $GUI_EVENT_CLOSE, $idCancelbutton, $idExititem ExitLoop Case $idInfoitem MsgBox($MB_SYSTEMMODAL, "Info", "Only a test...") EndSwitch WEnd GUIDelete() EndFunc ;==>Example