MFC 和 windows API 在获取屏幕分辨率方面的区别
Difference between MFC and windows API in getting screen resolution
我将 windows 屏幕分辨率设置为 1920x1080。
我有 c++ windows API 程序,需要使用 GetSystemMetrics
函数。
int x = GetSystemMetrics(SM_CXSCREEN);//retun x=1536
int y = GetSystemMetrics(SM_CYSCREEN);//retun y=864
如您所见,我从 1920x1080 获得了不同的值。
但是如果我在程序设置中使用 MFC
headers (afx.h) 并使用 MFC dlls,那么 return 值 x,y 等于 windows 屏幕分辨率 (1920x1080)。
为什么两种方法不一样?
如何在不使用 MFC 的情况下在我的程序中获得正确的 windows 屏幕分辨率?
您有没有机会 运行 在 Windows 上使用 125% 缩放?因为 1,25 * 1536 = 1920 和 1,25 * 864 = 1080?我假设 MFC 不支持 DPI。
另外,请参阅this了解如何将您的应用程序标记为 DPI 感知。
我将 windows 屏幕分辨率设置为 1920x1080。
我有 c++ windows API 程序,需要使用 GetSystemMetrics
函数。
int x = GetSystemMetrics(SM_CXSCREEN);//retun x=1536
int y = GetSystemMetrics(SM_CYSCREEN);//retun y=864
如您所见,我从 1920x1080 获得了不同的值。
但是如果我在程序设置中使用 MFC
headers (afx.h) 并使用 MFC dlls,那么 return 值 x,y 等于 windows 屏幕分辨率 (1920x1080)。
为什么两种方法不一样?
如何在不使用 MFC 的情况下在我的程序中获得正确的 windows 屏幕分辨率?
您有没有机会 运行 在 Windows 上使用 125% 缩放?因为 1,25 * 1536 = 1920 和 1,25 * 864 = 1080?我假设 MFC 不支持 DPI。
另外,请参阅this了解如何将您的应用程序标记为 DPI 感知。