Folgende Problemstellung:
Ich arbeite an einem Tickerprogramm. Dieses nimmt sich neue Infos aus einer
DB und zeigt sie im Lauftext, am oberen Bildschirmrand an. Der Platz oben wird für eine Application Bar freigegeben. Ist die Nachricht eine best. Zeit durchgelaufen, verschwindet die AppBar, die Form wird minimiert und taucht erst wieder aus, wenn eine neue Nachricht in der
DB steht.
Beim Einblenden der Bar, wird die Bildschirmfläche verkleinert, maximierte Programme werden in der neuen Fläche maximiert angezeigt und nach Ablaufen des Tickers wieder auf der gesamten Fläche. Nicht maximierte Fenster, die sich in dem Bereich befinden, wo die AppBar bei neuer Nachricht auftaucht, werden ans untere Ende der Bar geschoben.
Diese sollen nach Ablaufen aber wieder dorthin wo sie vorher waren.
Dazu speichere ich alle Fensterhandles und alle Positionen (mithilfe von GetWindowPlacement) in Arrays und nach Ablauf des Tickers, will ich wieder alle Fenster auf ihre ursprüngliche Position setzen.
Dazu verwende ich SetWindowPos. Das funktioniert soweit ganz. Nicht maximierte Fenster rutschen dorthinzurück, wo sie hingehören. Das Problem sind die maximierten Fenster. Von diesen nimmt sich GetWindowPlacement nämlich die Koordinaten, die sie verkleinert hätten.
SetWindowPos interessiert sich hierfür recht wenig und verschiebt das zuvor maximierte Fenster irgendwo auf den Screen (dort wo es verkleinert gewesen wäre).
Nun meine Frage:
-Gibt es eine Alternative zu GetWindowPlacement, dass die echten Koordinaten einließt oder
-Eine Möglichkeit (als Gegenstück zu IsIconic), mit dem man prüfen kann, ob ein Fenster maximiert ist
Meine Suche verlief leider erfolglos.
Vielen Dank schonmal!