(Windows)获取系统显示的缩放比例方法

时间:2025-04-17 14:58:17
//************************************
// Method:      getDpi
// Description: 获取系统dpi(缩放比例)
// Author:      xxx
// Date:        2020/09/23
// Returns:     比例 
//************************************
double getDpi()
{
	double dDpi = 1;
	// Get desktop dc
	HDC desktopDc = GetDC(NULL);
	// Get native resolution
	float horizontalDPI = GetDeviceCaps(desktopDc, LOGPIXELSX);
	float verticalDPI = GetDeviceCaps(desktopDc, LOGPIXELSY);

	int dpi = (horizontalDPI + verticalDPI) / 2;
	dDpi = 1 + ((dpi - 96) / 24)*0.25;
	if (dDpi < 1)
	{
		dDpi = 1;
	}
	::ReleaseDC(NULL, desktopDc);
	return dDpi;
}