Die Doku schreibt zu "Gui, Show...":
Wn: Geben Sie für n die Breite (in Pixel) des Clientbereichs an (das ist der Fensterbereich ohne Rahmen, Titelleiste und Menüleiste).
Hn: Geben Sie für n die Höhe des Clientbereichs an (in Pixel).
Ich halte fest: Es wird eindeutig von "Pixel" gesprochen.
Da ist nun testhalber dieses Fenster:
Code: Select all
#SingleInstance Force
Gui, -Caption +AlwaysOnTop
Gui, Show, x700 y400 w400 h200
Return
Bei diesem Fenster müßte ich - lt. Grundschule 1. Klasse - an den 4 Ecken folgende Koordinaten gemessen bekommen:
links/oben: 700 x 400
rechts/oben: 1100 x 400
links/unten: 700 x 600
rechts/unten: 1100 x 600
Tatsächlich bekomme ich aber:
links/oben: 700 x 400 (der einzige richtige Wert, x und y werden also richtig umgesetzt)
rechts/oben: 1197 x 400 (Fehler, w wird falsch umgesetzt)
links/unten: 700 x 646 (Fehler, h wird falsch umgesetzt)
rechts/unten: 1197 x 648 (Fehler, w und h werden falsch umgesetzt)
Die gemessenen Werte sind natürlich ca.-Werte, lt. MouseGetPos und der ca.-Genauigkeit meiner Zeigerplatzierung.
Da ist auch (lt. Doku) kein Rahmen und keine Menüleiste, und selbst wenn, dann dürften das keine so großen Unterschiede sein.
Das Fenster ist also in Breite und Höhe deutlich größer als beauftragt.
Warum ist das so?
Es nervt, wenn ich eine GUI relativ zu diversen Bildschirm-Auflösungen exakt oder automatisch ausrichten will, und dafür einäugig Pi x Daumen peilen muß.
Schnell messen und das nachvollziehen könnt ihr damit:
Code: Select all
^!m::
CoordMode Mouse
MouseGetPos, MausX, MausY
MsgBox, %MausX% x %MausY%