Mehrfach GUI

  • Hallo,

    möchte mir einen GUI schreiben die aus zwie Fenstern besteht.
    Eine ist im Hintergrung Vollflächig und die zweite in Vorderung.
    So wir es bei dem Meisten Setup Programmen der fall ist.

    Wie kann ich die Zwei festesteck umsetzen?

    Vorab Danke.

    Gruß

    Wolfgang

  • Hallo,

    ich hab auf meinem PC eine einfache Gui die nur aus insgesamt drei MsgBox Fenstern besteht.
    Wenn man auf OK oder auf das X klickt erscheint ein weiteres Fenster.
    Vielleicht kannst du mit Koda eine Gui erstellen und mit dem Code dann in ein anderes Fenster wechseln.

    Spoiler anzeigen


    #include <GUIConstants.au3>

    Opt("GUIOnEventMode", 1) ; Change to OnEvent mode
    $mainwindow = GUICreate("Hello World", 200, 100)
    GUISetOnEvent($GUI_EVENT_CLOSE, "CLOSEClicked")
    GUICtrlCreateLabel("Hello world! How are you?", 30, 10)
    $okbutton = GUICtrlCreateButton("OK", 70, 50, 60)
    GUICtrlSetOnEvent($okbutton, "OKButton")

    $dummywindow = GUICreate("Dummy window for testing ", 200, 100)
    GUISetOnEvent($GUI_EVENT_CLOSE, "CLOSEClicked")

    GUISwitch($mainwindow)
    GUISetState(@SW_SHOW)

    While 1
    Sleep(1000) ; Idle around
    WEnd

    Func OKButton()
    ;Note: at this point @GUI_CTRLID would equal $okbutton
    MsgBox(0, "GUI Event", "You pressed OK!")
    EndFunc

    Func CLOSEClicked()
    ;Note: at this point @GUI_CTRLID would equal $GUI_EVENT_CLOSE,
    ;@GUI_WINHANDLE will be either $mainwindow or $dummywindow
    If @GUI_WINHANDLE = $mainwindow Then
    MsgBox(0, "GUI Event", "You clicked CLOSE in the main window! Exiting...")
    Exit
    EndIf
    EndFunc

    • Offizieller Beitrag

    Hier, eine MainGUI und mit Strg+S kannst du eine SubGUI öffnen:

    [autoit]

    #include <GUIConstants.au3>
    $MainGUI = GUICreate("Main", Default, Default, Default, Default, BitOr($WS_CAPTION, $WS_POPUP, $WS_SYSMENU, $WS_MAXIMIZE))
    $SubGUI = GUICreate("Sub", 867, 551, -1, -1, BitOr($WS_CAPTION, $WS_POPUP, $WS_SYSMENU), $WS_EX_TOPMOST)
    GUISetState(@SW_SHOW,$MainGUI)
    HotKeySet("^s", "_StrgS")
    While 1
    $msg = GuiGetMsg(1)
    Select
    Case $msg[0] = $GUI_EVENT_CLOSE
    Select
    Case $msg[1] = $MainGUI
    ExitLoop
    Case $msg[1] = $SubGUI
    GUISetState(@SW_HIDE,$SubGUI)
    EndSelect
    EndSelect
    WEnd
    Exit

    [/autoit][autoit][/autoit][autoit]

    Func _StrgS()
    GUISetState(@SW_SHOW,$SubGUI)
    EndFunc

    [/autoit]
  • Würde einfach eine Gui mit der größe von @DesktopHeight bzw @DesktopWidth erstellen.
    Dann einfach eine zweite gui erstellen diese aber immer in vordergrund stellen mit
    WinSetOnTop
    :)

  • Erstmal Danke.

    Funst Prima, hab aber noch eine Frage auf dem Herzen...

    Wie bekomm ich das hinn, das ich in der Taskleiste nur ein Progrmm fenster sehe???

    Gruß

    Wolfgang