通过
Windows PC显示,我不是指Windows CE或手持设备等.
澄清
下面的一些人错误地认为我在询问显示器上的DPI(每英寸点数)是多少.我要求的是GetCaps API调用中LogPixelsX的值:
LOGPIXELSX沿屏幕宽度每逻辑英寸的像素数.
在我看过的例子中,无论屏幕DPI如何,它都设置为88.似乎是一个魔术数字常数.
在相关的Question中,我使用GetDeviceCaps来计算当前的屏幕字体DPI.我发现的代码示例都有:
Const LOGPIXELSX = 88
对于所有显示器(甚至是宽屏与常规显示器),这普遍相同吗?
如果没有,我如何找到当前显示器. (MSDN表示对于特定计算机上的所有监视器都是相同的.
在具有多个显示监视器的系统中,此值对于所有监视器都是相同的.
要回答您对问题的澄清:
LOGPIXELSX是您传递给GetDeviceCaps以获取当前显示器分辨率的参数(技术上是水平分辨率,但所有现代显示器具有相等的水平和垂直分辨率).是的,它始终是88 – 如果你想从GetDeviceCaps获得不同的值,你会传递一个不同的值.例如,要获得每个像素的位数,您将传递BITSPIXEL常量12,这些常量常量在Windows API文件WINGDI.h中定义.
MSDN中的注释不是指参数,而是指返回的值.