GUI sperren/entsperren wärend MSGBOX

  • Ich möchte gerne das wärend eine MSGbox angezeigt wird das HauptGUI nicht anklickbar ist. So wie es auch in den meisten Anwendungen ist wenn ein Dialog eingeblendet wird.

    Das habe ich so gelöst:

    Code
    GUISetState(@SW_DISABLE)
    msgbox(48, "Fehler!", "Kennwort falsch!")
    GUISetState(@SW_ENABLE)

    Wenn das GUI allerdings wieder ENABLED wird verschwindet es in den Desktophintergrund. Das ist natürlich nicht so schön.

    Was könnte man da tun das es im Vordergrund bleibt? (Allerdings nicht fixiert im Vordergrund)

  • Mir fällt keine andere Lösung ein

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

    ;$MAP ist die GUI angabe / der String
    Func _kwfail()
    WinSetState($MAP ,"",@SW_DISABLE)
    msgbox(48, "Fehler!", "Kennwort falsch!")
    WinSetState($MAP ,"",@SW_ENABLE)
    WinSetState($MAP ,"",@SW_HIDE)
    WinSetState($MAP ,"",@SW_SHOW)
    EndFunc

    [/autoit]

    :):):):)

    Eine Antwort :D

    • Offizieller Beitrag

    Bei einer MsgBox reicht es aus, die GUI als Parent zu setzen. So wird aus der MsgBox automatisch ein Childfenster der GUI.
    Beispiel:

    Spoiler anzeigen
    [autoit]


    #include <GUIConstantsEx.au3>
    $hGui = GUICreate('test', 400, 300)
    $idOpen = GUICtrlCreateButton('Open MsgBox', 10, 20, 100, 25)
    $idClose = GUICtrlCreateButton('Close GUI', 120, 20, 100, 25)
    GUISetState(@SW_SHOW, $hGui)

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

    While True
    Switch GUIGetMsg()
    Case $GUI_EVENT_CLOSE, $idClose
    Exit
    Case $idOpen
    MsgBox(48, "Fehler!", "Kennwort falsch!", 0, $hGui)
    EndSwitch
    WEnd

    [/autoit]