GUI Während der Laufzeit in der Taskbar verstecken/anzeigen

  • Hi Com,

    komme grade bei meinem Programm nicht weiter. Ich habe eine GUI. Wenn man diese minimiert soll diese einfach in der Taskleiste bleiben zum maximieren. Wenn man allerdings auf das X drückt soll diese in den Systemtray minimiert werden, sodass man sie nur da wieder maximieren kann. D.h. die GUI muss in der dabei jenachdem in der Taskbar verschwinden und wieder auftauchen.
    Ich hab versucht beim minimieren den Stil $WS_EX_TOOLWINDOW zu setzen damit das Fenster nicht mehr in der Taskbar auftaucht, allerdings ändert sich nur der Rahmen der GUI. Gibt es eine andere Möglichkeit das zu realisieren?

    [autoit]

    #include <WindowsConstants.au3>
    #include <GUIConstantsEx.au3>

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

    Opt("GUIOnEventMode",1)

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

    $hGUI = GUICreate("titel",300,300,-1,-1)

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

    GUISetOnEvent($GUI_EVENT_CLOSE,"_EventClose")
    GUISetOnEvent($GUI_EVENT_MAXIMIZE,"_EventMaximize")

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

    GUISetState()

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

    While 1
    Sleep(100)
    WEnd

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

    Func _EventClose()
    GUISetState(@SW_MINIMIZE)
    GUISetStyle(-1,$WS_EX_TOOLWINDOW)
    EndFunc

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

    Func _EventMaximize()
    GUISetStyle(-1,0)
    EndFunc

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

    Func _Exit()
    Exit
    EndFunc

    [/autoit]

    Einmal editiert, zuletzt von Jantastic (24. März 2013 um 19:23)

  • Das Minimieren sollte, wenn ich dich richtig verstanden habe, ja eigentlich von selbst gehen.
    Beim Schließen setzt du den Style einfach auf @SW_HIDE und speicherst in irgendeiner Variable, das die GUI momentan unsichtbar ist.
    Mit TrayGetMsg (und vorher noch anderen Tray*-Funktionen) kannst du den Klick auf das Icon abfragen, der Rest sollte selbsterklärend sein.