PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Windows Monitortreiber: reale Größe auslesen?


Frank
2004-08-09, 10:04:33
Also meine Frage: kann man in Windows aus dem Monitortreiber oder dieser Plug&Play Sache irgendwelche Informationen (meinetwegen von C++ aus) bezüglich der physikalischen Ausmaße des Bildbereiches auslesen?

Danke :)

Xmas
2004-08-09, 10:17:57
Klar geht das.

#include "Windows.h"
...
int width = GetDeviceCaps(NULL, HORZSIZE);
int height = GetDeviceCaps(NULL, VERTSIZE);
Sollte eigentlich funktionieren (NULL ist üblicherweise der Desktop Device Context). So bekommst du die Größe in mm. Falls nicht, kann ich dir heute Abend noch ein Beispiel raussuchen das auch mit mehreren Monitoren klappen sollte.

GetDeviceCaps (http://msdn.microsoft.com/library/default.asp?url=/library/en-us/gdi/devcons_88s3.asp)

Die Angaben sind allerdings nicht immer zuverlässig.

Einfachkrank
2004-08-09, 10:21:40
Was stellt man mit dieser Information an oder was ganz genau habe ich eigentlich dann für eine Information? Doch nicht die Bildschirmauflösung, oder?

Xmas
2004-08-09, 10:43:23
Die Bildschirmgröße in mm. Siehe Edit bzw. Link oben.

Frank
2004-08-23, 18:22:28
Danke Xmas. Scheint genau das zu sein, was ich suche. Allerdings spuckt der auch wenn ich die gerade vorhanden Auflösung auslesen will mir überall nur eine 0 aus. Egal ob jetzt mit nur einen Monitor oder zweien.

verwendeter code wie oben...

#...
...
int hr = GetDeviceCaps(NULL, HORZRES);
int vs = GetDeviceCaps(NULL, VERTSIZE);
...