This question already has answers here:
GetSystemMetrics() returns wrong value for SM_CXSCREEN
(3个答案)
3年前关闭。
我将Windows屏幕分辨率设置为1920x1080。
我有c++ Windows API程序,需要使用
如您所见,我从1920x1080获得了不同的值。
但是,如果我在程序设置中使用
为什么两种方法不一样?
如何在不使用MFC的情况下在程序中获得正确的Windows屏幕分辨率?
(3个答案)
3年前关闭。
我将Windows屏幕分辨率设置为1920x1080。
我有c++ Windows API程序,需要使用
GetSystemMetrics
函数。int x = GetSystemMetrics(SM_CXSCREEN);//retun x=1536
int y = GetSystemMetrics(SM_CYSCREEN);//retun y=864
如您所见,我从1920x1080获得了不同的值。
但是,如果我在程序设置中使用
MFC
header ( afx.h )并使用 MFC dll ,则返回值x,y等于Windows屏幕分辨率(1920x1080)。为什么两种方法不一样?
如何在不使用MFC的情况下在程序中获得正确的Windows屏幕分辨率?
最佳答案
您是否有可能在Windows上以125%的比例运行?因为1,25 * 1536 = 1920和1,25 * 864 = 1080?我假设MFC不支持DPI。
另外,请参阅this,了解如何将您的应用程序标记为DPI感知。
关于c++ - MFC和Windows API在获取屏幕分辨率方面的区别,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/40998553/