2016-12-06 2 views
1

Я установил разрешение экрана Windows на 1920x1080. У меня есть программа C++ windows API и вам нужно использовать функцию GetSystemMetrics.Разница между MFC и API окон при получении разрешения экрана

int x = GetSystemMetrics(SM_CXSCREEN);//retun x=1536 
int y = GetSystemMetrics(SM_CYSCREEN);//retun y=864 

Как вы видите, я получаю различное значение от 1920x1080. Но если я использую заголовки MFC (afx.h) и используйте MFC dlls в настройках программы, тогда возвращаемое значение x, y равно разрешению экрана Windows (1920x1080).

Почему два метода не одинаковы?

Как я могу получить правильное разрешение экрана в моих программах без использования MFC?

ответ

6

Любой шанс, что вы работаете в Windows с 125% масштабированием? Так как 1,25 * 1536 = 1920 и 1,25 * 864 = 1080? Я предполагаю, что MFC не поддерживает DPI.

Также см. this о том, как отметить ваше приложение как DPI.

+0

спасибо. –

Смежные вопросы