Fenster hierarchie?

  • Mit dem Parameter $WS_EX_TOPMOST kann man ja eine GUI erstellen die immer im Vordergrund bleibt. Nun Frage ich mich ob auch folgendes realisierbar ist:

    Ein GUI die immer im Hintergrund bleibt und alle anderen Fesnter vor diesem sind (würde zumindestens bei anderen GUI ja mit dem setzen $WS_EX_TOPMOST gehen aber bei normalen halt nicht)
    und auf dieser GUI dann weitere GUIs die aber immer nur exakt eine Ebene höher als die Hauptgui sind.


    Edit: So auf viellfachen Wunsch eines einzelnen erkläre ich es nochmal anders hehe:

    Ich möchte eine GUI haben die Grundsätzlich auf Unterster Ebene hinter allen anderen Fenstern liegt. Dann möchte ich weiter GUIs anzeigen die sich zwar über dieser GUI, die sich immer Hintergrund befindet, sind aber auf der anderen Seite immernoch unterhalb aller anderen Fenster.

    Andy hat mir ein Schnitzel gebacken aber da war ein Raupi drauf und bevor Oscar das Bugfixen konnte kam Alina und gab mir ein AspirinJunkie.

    2 Mal editiert, zuletzt von chip (23. Februar 2010 um 15:10)

  • Das ist schonmal super soweit und funktioniert auch :). Aber wie kann ich nun sagen das die Fesnter immer auf unterster Ebene sein sollen auch wenn ein Fesnter offen sit das die Hauptgui nicht als parent hat?

    Hier mal kleines Beispiel. Wenn man das Script startet erscheint eine große GUI und zwei kleine. Die kleinen befinden sich auch immer schön eine ebene über der großen. Wenn man aber nun z.b. Firefox aufmacht kann man die GUI noch vor den Firefox holen. Erreichen möchte ich aber das diese GUI wirklich das hinterste Fenster generell ist.

    Spoiler anzeigen
    [autoit]

    #include <GUIConstantsEx.au3>
    #Region ### START Koda GUI section ### Form=
    $Form1 = GUICreate("Form1", 888, 696, 192, 124)
    GUISetState(@SW_SHOW)
    #EndRegion ### END Koda GUI section ###

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

    #Region ### START Koda GUI section ### Form=
    $Form2 = GUICreate("Form2", 257, 175, 192, 124, -1, "",$Form1)
    GUISetState(@SW_SHOW)
    #EndRegion ### END Koda GUI section ###

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

    #Region ### START Koda GUI section ### Form=
    $Form2 = GUICreate("Form2", 257, 175, 192, 224, -1, "",$Form1)
    GUISetState(@SW_SHOW)
    #EndRegion ### END Koda GUI section ###

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

    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit

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

    EndSwitch
    WEnd

    [/autoit]

    Andy hat mir ein Schnitzel gebacken aber da war ein Raupi drauf und bevor Oscar das Bugfixen konnte kam Alina und gab mir ein AspirinJunkie.

    Einmal editiert, zuletzt von chip (23. Februar 2010 um 15:02)

  • Ok ich habs, ich setze einfach bei alle anderen Fenster mit WinSetOnTop das "TOPMOST" Flag.

    Andy hat mir ein Schnitzel gebacken aber da war ein Raupi drauf und bevor Oscar das Bugfixen konnte kam Alina und gab mir ein AspirinJunkie.