Discussion:
application.ActiveWindow.Width zu klein?
(zu alt für eine Antwort)
Thomas Hoffmann
2011-02-24 23:46:36 UTC
Permalink
Wieso liefert bei maximiertem word obige Eigenschaft (ebenso wie word.application.width)
auf einem 1600x900-pixel Monitor nur 965 zurück?
Wie bekomme ich die wirkliche Fensterbreite von word?
Gruß und Dank!
--
Thomas Hoffmann
Wolfram Jahn
2011-02-25 00:10:04 UTC
Permalink
Post by Thomas Hoffmann
Wieso liefert bei maximiertem word obige Eigenschaft (ebenso wie
word.application.width) auf einem 1600x900-pixel Monitor nur 965 zurück?
Wie bekomme ich die wirkliche Fensterbreite von word?
Gruß und Dank!
Weil sie in 'points' zählt.
Wenn Du die horizontalen Pixels willst, dann nimm einfach

?PointsToPixels(application.Width,False)

Sei allerdings gewarnt, ganz exakt ist das bei mir auch nicht.

Mein Monitor ist 2560 Pixel breit, aber das Ergebnis der Zeile oben
lautet 2568. Keine Ahnung, wo Word die 8 Pixel hernimmt.



(Vielleicht wird der Bildschirm beim Ausführen der Zeile immer ganz
kurzzeitig etwas breiter?)


Wolfram
Thomas Hoffmann
2011-02-25 08:18:02 UTC
Permalink
Mein Monitor ist 2560 Pixel breit, aber das Ergebnis der Zeile oben lautet 2568. Keine Ahnung, wo Word die 8 Pixel hernimmt.
Dank zunächst!
die Differenz kommt wohl daher dass die Form (wahrscheinlich je 4 pixel) über den Screen-Rand hinausgeht.
in Winspector ist mir aufgefallen, dass für .left und .top ein paar negative pixel drinstehen.
Thomas Hoffmann
2011-02-25 08:19:36 UTC
Permalink
Post by Wolfram Jahn
Weil sie in 'points' zählt.
Weißt Du warum das bei der Form so ist aber bei ihren controls nicht? die werden in den Abmessungen in pixeln zurückgegeben, zb: commandbars, commandbarbuttons usw.
In der OLH hab ich das übrigens mit den points nicht gefunden bei mir.
Wolfram Jahn
2011-02-25 20:30:05 UTC
Permalink
Post by Thomas Hoffmann
Post by Wolfram Jahn
Weil sie in 'points' zählt.
Weißt Du warum das bei der Form so ist aber bei ihren controls nicht?
die werden in den Abmessungen in pixeln zurückgegeben, zb: commandbars,
commandbarbuttons usw.
Wissen: nein.
Raten: damit man 'leichter' bestimmen kann wieviele Buchstaben dahin
passen. Wenn man hingegen Controls designed zählt man eher die Pixel?
Post by Thomas Hoffmann
In der OLH hab ich das übrigens mit den points nicht gefunden bei mir.
Das kann an der Version liegen. Ich habe Office 2007 deutsch
nichtkommerzielle Verwendung. (Generell ist es eine gute Idee, die
Version bei Fragen gleich mit anzugeben :)


Wolfram
Thomas Hoffmann
2011-02-25 22:27:44 UTC
Permalink
Post by Wolfram Jahn
?PointsToPixels(application.Width,False)
übrigens: Gibt bei mir mit 1600-Pixel-Auflösung 1286 !!
(Fenster maximiert)
--
Thomas Hoffmann
Bernhard Sander
2011-02-28 08:49:22 UTC
Permalink
Hallo Wolfram,
Post by Wolfram Jahn
Mein Monitor ist 2560 Pixel breit, aber das Ergebnis der Zeile oben
lautet 2568. Keine Ahnung, wo Word die 8 Pixel hernimmt.
Weil das Fenster rundum tatsächlich 4 Pixel breiter ist, als der Bildschirm
groß. Mangels Bildschirm sieht man diesen Rand nicht. Auf diese Weise nutzt
Windows intern auch für ein maximiertes Fenster ein stinknormales Fenster. Weil
der dünne Rand nicht sichtbar ist, sieht das Fenster aus, als würde es randlos
mit dem Bildschirm abschließen.

Gruß
Bernhard Sander
Thomas Hoffmann
2011-03-03 21:53:08 UTC
Permalink
Post by Thomas Hoffmann
Wieso liefert bei maximiertem word obige Eigenschaft (ebenso wie word.application.width)
auf einem 1600x900-pixel Monitor nur 965 zurück?
Habe aus einem Gefühl heraus mal in der Monitor-Auflösung > Erweitert die Schriftgröße,
die ich auf 'große Schriftarten' stehen habe, auf 'kleine Schriftarten' geändert.
Nun wird mit PointsToPixels(application.Width,False) tatsächlich 1608 zurückgegeben.
Ich war der Meinung, point ist ein eindeutiges Längenmaß auf dem Monitor, offenbar ist es
das nicht?
Wie also kriege ich bei 'großen Schriftarten' die Bildschirmauflösung?

Gruß und Dank
--
Thomas Hoffmann
Wolfram Jahn
2011-03-04 19:42:14 UTC
Permalink
Post by Thomas Hoffmann
Wie also kriege ich bei 'großen Schriftarten' die Bildschirmauflösung?
Wenn es nicht mit irgendeiner Kombination der Methoden des Application
Objektes geht, die sich mit den Größen-Umrechnungen beschäftigen, musst
Du die entsprechende Eigenschaft der Schriftgrößeneinstellung mit
irgendwelchen System-Calls herauspfriemln.

Die Oben erwähnten Methoden stehen in der Hilfe zum Application Objekt,
ich hab sie mal hier unten drankopiert. Sie suggerieren, dass Points
tatsächlich feste Maße hätten. Vielleicht ist das ja auch eine Frage der
Sichtweise: Deine Monitor-Einstellung skaliert - aus Sicht von Word -
den Monitor, die Points bleiben gleich groß, nur die Pixel pro Point
ändern sich.


Wolfram
------------------

CentimetersToPoints
Ändert eine Maßeinheit von Zentimeter in Punkt (1 cm = 28,35 Punkt).
Gibt das umgerechnete Maß als Single-Wert zurück.
InchesToPoints
Konvertiert eine Maßeinheit von Zoll in Punkt (1 Zoll = 72 Punkt). Gibt
das konvertierte Maß als Single-Wert zurück.
LinesToPoints
Konvertiert eine Maßeinheit von Zeilen in Punkt (1 Zeile = 12 Punkt).
Gibt das konvertierte Maß als Single-Wert zurück.
MillimetersToPoints
Konvertiert eine Maßeinheit von Millimeter in Punkt (1 mm = 2,85 Punkt).
Gibt das konvertierte Maß als Single-Wert zurück.
PicasToPoints
Konvertiert eine Maßeinheit von Pica in Punkt (1 Pica = 12 Punkt). Gibt
das konvertierte Maß als Single-Wert zurück.
PixelsToPoints
Konvertiert eine Maßeinheit von Pixel in Punkt. Gibt das konvertierte
Maß als Single-Wert zurück.
PointsToCentimeters
Konvertiert eine Maßeinheit von Punkt in Zentimeter (1 Zentimeter =
28,35 Punkt). Gibt das konvertierte Maß als Single-Wert zurück.
PointsToInches
Konvertiert ein Maß von Punkt in Zoll (1 Zoll = 72 Punkt). Gibt das
konvertierte Maß als Single-Wert zurück.
PointsToLines
Konvertiert eine Maßeinheit von Punkt in Linie (1 Linie = 12 Punkt).
Gibt das konvertierte Maß als Single-Wert zurück.
PointsToMillimeters
Konvertiert eine Maßeinheit von Punkt in Millimeter (1 Millimeter =
2,835 Punkt). Gibt das konvertierte Maß als Single-Wert zurück.
PointsToPicas
Konvertiert eine Maßeinheit von Punkt in Pica (1 Pica = 12 Punkt). Gibt
das konvertierte Maß als Single-Wert zurück.
PointsToPixels
Konvertiert eine Maßeinheit von Punkt in Pixel. Gibt das konvertierte
Maß als Single-Wert zurück.
Thomas Hoffmann
2011-03-06 14:26:33 UTC
Permalink
Die Oben erwähnten Methoden stehen in der Hilfe zum Application Objekt, ich hab sie mal
hier unten drankopiert. Sie suggerieren, dass Points tatsächlich feste Maße hätten.
Das haben sie wohl nicht. mit getdevicecaps für das display kriege ich korrekte Werte:
bei Kleinen Schriften horizontal dots per inch: 96
bei Großen Schriften horizontal dots per inch: 120.

die vba-Funktion pointsToPixels oder pointsToInches sind also nicht brauchbar...
--
Thomas Hoffmann
Lesen Sie weiter auf narkive:
Loading...