Z-Order eines Fensters auslesen und wieder herstellen
-
Hallo, ich habe die folgende Frage:
Wie kann ich die genaue Z-Ordner eines Fensters auslesen, sprich die genaue Hierarchie an welcher Position es auf dem Desktop liegt (beispielsweise liegen noch 2 Fenster über dem besagten Fenster)?
Nachdem ich nun eine Nachricht beispielsweise an ein Internet Explorer Fenster gesendet habe, wird dieses automatisch in den Vordergrund gestellt.
Nun möchte ich dieses Fenster wieder zurück auf die alte Z-Order stellen.
Bisher mache ich das folgendermaßen:
Ich erfrage mit GetForegroundWindow() das aktuelle Fenster was ganz oben in der Z-Order liegt. Dann sende ich die Fensternachricht zu dem anderen Fenster und setze wieder mit SetForegroundWindow() das alte Vordergrundfenster als höchstes Fenster in der Hierarchie.
Aber das ist nicht genau das, was ich möchte, weil das andere Fenster nicht genau die selbe Z-Ordner wie vorher hat, sondern direkt nach dem aktuelles Vordergrundfenster folgt.Wie kann ich die genaue Z-Order ermitteln und wieder setzen?
Mit GetNextWindow und dem Parameter GW_HWNDNEXT kann ich ja das folgende Fenster auslesen. Gibt es eine Funktion um beispielsweise die Z-Order so anzupassen, dass das Fenster hinter dem anderen Fenster eingeordnet wird?
-
Zum Beispiel:
SetWindowPos( hWndAfter, 0,0,0,0, SWP_NOMOVE | SWP_NOSIZE | SWP_NOACTIVATE );
Einfach als erster Parameter das Fenster angeben nachdem dein Fenster eingefügt werden soll.
-
Hey tvdog, ich danke dir!