首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >获取windows下的实际屏幕dpi/ppi

获取windows下的实际屏幕dpi/ppi
EN

Stack Overflow用户
提问于 2012-09-29 20:50:32
回答 4查看 35.2K关注 0票数 23

我想得到实际的屏幕dpi/ppi,而不是C++中用于字体的dpi设置。

我尝试使用以下代码:

版本1报告72 dpi,这是错误的。

代码语言:javascript
复制
SetProcessDPIAware(); //true
HDC screen = GetDC(NULL);
double hSize = GetDeviceCaps(screen, HORZSIZE);
double vSize = GetDeviceCaps(screen, VERTSIZE);
double hRes = GetDeviceCaps(screen, HORZRES);
double vRes = GetDeviceCaps(screen, VERTRES);
double hPixelsPerInch = hRes / hSize * 25.4;
double vPixelsPerInch = vRes / vSize * 25.4;
ReleaseDC(NULL, screen);
return (hPixelsPerInch + vPixelsPerInch) * 0.5;

版本2报告96 dpi,这是字体的Windows dpi设置,但不是实际的屏幕dpi。

代码语言:javascript
复制
SetProcessDPIAware(); //true
HDC screen = GetDC(NULL);
double hPixelsPerInch = GetDeviceCaps(screen,LOGPIXELSX);
double vPixelsPerInch = GetDeviceCaps(screen,LOGPIXELSY);
ReleaseDC(NULL, screen);
return (hPixelsPerInch + vPixelsPerInch) * 0.5;
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12652835

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档