GetSystemMetrics () возвращает неправильное значение для SM_CXSCREEN

Я столкнулся с интересной проблемой. По крайней мере, в Vista, getSystemMetrics (SM_CXSCREEN) возвращает неправильное значение, когда настольные настройки DPI не установлены в 100%. Например, я попробовал 150% в 1366x768, экран и getSystemMetrics () возвращаются 911 вместо 1366 (и 1366 / 1,5 ~ 911)

Согласно MSDN, getSystemMetrics (SM_CXSCREEN) возвращает пиксели, таким образом, я думал, что это значение не будет затронуто настройками DPI - но это. Так есть ли более безопасный способ узнать истинное, немасштабированное разрешение экрана?

9
задан ggambett 13 April 2010 в 14:36
поделиться

1 ответ

Программа должна сообщить операционной системе, что она поддерживает разрешение DPI, чтобы получить истинное разрешение при превышении 125%. Лучше всего это сделать с помощью манифеста, как описано в статье библиотеки MSDN .

10
ответ дан 4 December 2019 в 13:00
поделиться
Другие вопросы по тегам:

Похожие вопросы: