1

我有一台戴尔笔记本电脑纬度5420。

内置显示器的宽度为 12.20 英寸,高度为6.69 6,86 英寸。

操作系统是Windows7。屏幕分辨率设置为 1600 x 900(首选分辨率)。

此外,Windows7 配置了 100% 的“设置自定义文本大小 (DPI)”(9 点 Segoe UI,每英寸 96 像素)。我认为这意味着 windows7 认为我的 1 英寸显示器使用 96 像素。

如果我将 1600 像素除以 12.20 英寸(或 900 除以 6,86),结果约为 131,1。

系统的预期 DPI 应该是多少?水平的?垂直的?鉴于这种配置,一个正方形会在我的屏幕中被视为一个矩形吗?我错过了什么吗?

原来的问题现在没有意义了。分辨率和物理尺寸现在遵循相同的 16:9 格式。

现在它困扰我的问题是,实际上屏幕似乎每英寸大约有 131 像素,但操作系统认为它有 96 英寸像素。如果我告诉一个程序写一行 1 英寸,屏幕上会打印多少像素?96还是131?如果我告诉一个程序写 131 个像素,然后在屏幕上放一把尺子,我会测量什么?

编辑原因:抱歉给您带来不便。我用尺子重新检查了测量,我在垂直测量中出错了。

4

2 回答 2

3

GetDeviceCaps旨在返回此信息(HORZSIZE/ VERTSIZELOGPIXELSX/ LOGPIXELSY)。然而,

GetDeviceCaps报告显示驱动程序提供的信息。如果显示驱动程序拒绝报告任何信息,GetDeviceCaps则根据固定计算来计算信息。如果显示驱动程序报告无效信息,GetDeviceCaps则返回无效信息。此外,如果显示驱动程序拒绝报告信息,GetDeviceCaps可能会计算出不正确的信息,因为它假定固定 DPI (96 DPI) 或固定大小(取决于显示驱动程序提供和未提供的信息)。不幸的是,实现到 Windows 显示驱动程序模型 (WDDM)(在 Windows Vista 中引入)的显示驱动程序会导致 GDI 无法获取信息,因此 GetDeviceCaps 必须始终计算信息。

对于我的 Windows 7 笔记本电脑,HORZSIZE完全VERTSIZE错误。

于 2012-07-25T07:09:02.863 回答
2

96 像素/英寸是一种虚拟,与实际屏幕尺寸无关。假设您有一个 4000 * 3000 像素的屏幕,LOGPIXELX 仍将返回 96(使用标准设置)。请阅读这篇文章以获得全面的解释。

顺便说一句,我的电脑上的 HORZSIZE 和 VERTSIZE 也是完全错误的。

于 2013-02-14T10:41:58.163 回答