获取屏幕分辨率的MFC和Windows API之间的区别

S_M*_*S_M 1 c++ winapi mfc screen-resolution

我将Windows屏幕分辨率设置为1920x1080.我有c ++ windows API程序,需要使用GetSystemMetrics函数.

int x = GetSystemMetrics(SM_CXSCREEN);//retun x=1536
int y = GetSystemMetrics(SM_CYSCREEN);//retun y=864
Run Code Online (Sandbox Code Playgroud)

如你所见,我从1920x1080获得了不同的价值.但如果我在程序设置中使用MFC标题(afx.h)并使用MFC dll,则返回值x,y等于Windows屏幕分辨率(1920x1080).

为什么这两种方法不一样?

如何在不使用MFC的情况下在程序中获得正确的Windows屏幕分辨率?

Rud*_*lis 6

您是否有机会在Windows上运行125%缩放?自1,25*1536 = 1920和1,25*864 = 1080?我假设MFC不支持DPI.

此外,请参阅如何标记您的应用程序DPI意识.