Guten Tag,
Philipp K. hat geschrieben:Hallo Jan,
vielen Dank für die ausführliche Antwort!
In der Ini steht (nachdem ich das Statusfenster auf dem zweiten Bildschirm platziert habe und das Editfenster auf dem ersten maximiert habe):
In den Statusinformationen steht:
Code: Alles auswählen
Grafik: 32 Bit per Pixel (bpp), Monitore: 1
Auflösung (Pixel): Breite × Höhe 1920 × 1080
BAHN sieht also nur einen der beiden Monitore (als zusätzliche Herausforderung für BAHN: Die haben verschiedene Auflösungen; der andere hat 1280*1024 und ist links vom ersten angeordnet, an der Oberkante ausgerichtet.)
Was soll man sich denn bei so einer Konfiguration unter einem "maximierten" Fenster vorstellen?
a) eines von (1280+1920) x (1024+1080), dann ist aber eine Ecke links unten nicht sichtbar
b) eines ohne diese Ecke (da sind verschiedene Varianten denkbar)
Das ist letztlich ein konzeptionelles Problem: Die Idee des "Maximierens" stammt aus der Urzeit der grafischen Nutzeroberflächen. Damals waren die Bildschirme klein und die Auflösung niedrig, und vor allem dachte noch niemand an die Möglichkeit mehrerer Monitore. Heute ist das eigentlich schon lange obsolet und paßt gar nicht mehr ins Konzept. Entsprechend zweifelhaft und unklar sind dann auch die Varianten, wie damit umgegangen wird. Die hier von BAHN erfaßten Daten sind möglicherweise reine Zufallswerte, weil Windows bei maximiertem Fenster wahrscheinlich gar keine korrekten Werte übergibt, sondern nur die Info "Fenster ist maximiert". Das kann aber von der Windows-Version und den Gerätetreibern abhängen (Grafikkarte[n], Monitor[e]). Bei BAHN war das Maximieren noch nie besonders sinnvoll, weil dann das Statusfenster unsichtbar ist. Ich habe es selbst eigentlich nie benutzt, verwende es aber auch bei keiner anderen Software.
Philipp K. hat geschrieben:
Nun konnte ich folgendes beobachten:
- Bei maximiertem Editfenster speichert BAHN die o.g. abstrusen Größenwerte (1593 Pixel hoch), anstelle der 1920*1080, die das maximieren auf dem ersten Bildschirm ergeben müsste. Bei nicht maximiertem Editfenster werden plausible Größenwerte gespeichert.
- Die Koordinaten des Statusfensters werden zwar korrekt gespeichert (z.B. 47,28), aber das Fenster taucht nicht wieder an dieser Stelle auf, sondern befindet sich oben in der Bildschirmmitte, statt oben links.
Das Statusfenster wird von BAHN immer mittig plaziert (in Ost-West-Richtung), d.h. die x-Koordinate wird ignoriert.
Bei den Editfenstern werden die Werte geprüft und mit denen des aktuellen Computers verglichen. Wenn ein Fenster dabei außerhalb liegt, dann versucht BAHN, es irgendwo innen zu plazieren. Ansonsten verwendet es die gespeicherten Werte.
Der Sinn darin ist folgender: Wenn man einen großen Monitor hat - oder mehrere - und die Fenster dort irgendwohin setzt, aber später mal einen kleineren Monitor anschließt oder nur einen Teil der zuvor vorhandenen, dann sollen die Fenster sichtbar sein und nicht versehentlich außerhalb liegen, wo man sie 1. nicht sehen kann und 2. auch nicht wieder weg bekommt, weil man sie nicht anklicken kann.
Wenn nun aber der 2. Monitor nicht erkannt wird oder jedenfalls nur die Werte des 1. gefunden werden, dann gilt die o.g. Einschränkung auch nur innerhalb dieser Werte.
Danke für die Details, ich werde mir das noch näher ansehen. Wahrscheinlich gibt es aber keine allgemein verwendbare Lösung.
Grüße,
Jan B.