Bildschirm-Pixel-Auflösung in mm
Ist es möglich die Bildschirm-pixel-Auflösung in mm mithilfe von Win32-APIs ? Ich habe eine Anwendung, die zeigt 0.3472222222222222 als Wert für diese auf meinem 1280x1024-monitor mit 96 dpi . Aber ich bin nicht in der Lage, um herauszufinden, wie es dieser Wert. Alle Hinweise werden hilfreich sein. Die ich verwenden kann, MFC-auch wenn erforderlich.
BEARBEITEN
Sorry für die Verwirrung, die software, die ich spreche, war nicht mit der aktuellen Bildschirm-Auflösung. Es war zu Lesen von einer config-Datei.
- 25 / 72 = 0.347222. Keine Ahnung, wo Sie bekam 25 aus.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Get device caps für den monitor gibt Ihnen die Größe in Pixel oder mm so:
0.3472222222222222 mm pro pixel ist in der Tat entspricht etwa 73 dpi. Windows verwendet zwei standard-Einstellungen 72dpi und 96dpi, aber die benutzerdefinierten Werte werden ebenfalls unterstützt. Diese sind Nennwerte und können es nicht ertragen, jede Beziehung zu dem physikalischen Bildschirm. Zum Beispiel ist es möglich, ein physikalisch 96dpi Bildschirm auf 72dpi, und dies wirkt sich auf die Skalierung von Bildern und layout in verschiedenen Anwendungen, wie auch die Größe der Schriftarten und icons.
Standard für Windows ist 72dpi, und ich habe festgestellt, dass einige Anwendungen (oft in Ihre "Über" und Dialogfelder) nicht korrekt gerendert, wenn Sie setzen auf andere Werte. Wenn Ihre Anwendung die Berichte 0.34, scheint es wahrscheinlich, dass es auf 72dpi oder einen eigenen Wert, unabhängig von der physikalischen Auflösung. Wenn gesetzt, um die physikalische Auflösung, die Breite Seite in sage das Wort zum Beispiel bei der Einstellung einer zoom-Stufe von 100% entspricht die tatsächliche Papiergröße. Da diese Metrik kann durch die end-user, es ist nicht direkt mit der tatsächlichen Auflösung.
Den Abschnitt über die Schrift "DPI-aware" - Anwendungen in der MSDN ist auch lesenswert für alle interessierten bietet anständige Unterstützung für variable display-Auflösungen. APIs für die Beschaffung relevanten Geräte & system-Metriken beschrieben werden hier.
Hatte ich auch ähnliche Probleme auf Windows 7 und versuchen verschiedene Ansätze, konnte aber nicht die richtige Antwort, bis ich das gefunden: http://ofekshilon.com/2011/11/13/reading-monitor-physical-dimensions-or-getting-the-edid-the-right-way/
Es funktioniert für mich für verschiedene Bildschirm-Größen!
Verwenden Sie die GetDC Funktion, um ein handle auf den monitor, dann rufen Sie die GetDeviceCaps - Funktion, um die Größe des Monitors in Millimeter. Zum Beispiel:
Den folgenden code-snippet bewiesen, um die beste Ergebnis.