win32 获取系统dpi

论坛 期权论坛 期权     
选择匿名的用户   2021-6-2 19:45   8656   0

#include <windows.h>

//获取系统dpi
int get_system_dpi(void)
{

//加载系统库user32.dll
HMODULE hUser32 = LoadLibrary(TEXT("user32.dll"));
SetProcessDPIAwareFn *ptr;
int hdpi, vdpi;
HDC desktopDC;

//获取SetProcessDPIAware系统函数地址

ptr = (SetProcessDPIAwareFn *)GetProcAddress(hUser32, "SetProcessDPIAware");
if (ptr != NULL)
ptr();//调用系统函数
FreeLibrary(hUser32);

desktopDC = GetDC(NULL);
hdpi = GetDeviceCaps(desktopDC, LOGPIXELSX);//我这里是120
vdpi = GetDeviceCaps(desktopDC, LOGPIXELSY);//我这里是120
/* hdpi,vdpi = 100 means 96dpi. */
return ((hdpi + vdpi) * 96 + 0.5f) / 200;//得出115
}

分享到 :
0 人收藏
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

积分:3875789
帖子:775174
精华:0
期权论坛 期权论坛
发布
内容

下载期权论坛手机APP