ight="140" border="0" />
例如,对於MM_LOENGLISH,Windows计算的范围如下:

Windows使用这些来自GetDeviceCaps的有用资讯设定范围。只是在Windows 98和Windows
NT之间有一点差别。
首先,来看看Windows
98是如何做的:假设您使用「控制台」的「显示」程式选择了96
dpi的系统字体。GetDeviceCaps对於LOGPIXELSX和LOGPIXELSY索引都将传回值96。Windows为视埠范围使用这些值并以表5-7的方式设定视埠和视窗的范围。
映射方式
视埠范围
(x,y)
视窗范围
(x,y)
| MM_LOMETRIC |
(96,
96) |
(254,
-254) |
| MM_HIMETRIC |
(96,
96) |
(2540,
-2540) |
| MM_LOENGLISH |
(96,
96) |
(100,
-100) |
| MM_HIENGLISH |
(96,
96) |
(1000,
-1000) |
| MM_TWIPS |
(96,
96) |
(1440,
-1440) |
这样,对MM_LOENGLISH来说,96除以100的比值是0.01英寸中的图素数。对MM_LOMETRIC来说,96除以254的比值是0.1毫米中的图素数。
Windows
NT使用不同的方法设定视埠和视窗的范围(与早期16位元版本的Windows一致的方法)。视埠范围依据萤幕的图素尺寸。可以使用HORZRES和VERTRES索引从GetDeviceCaps取得这种资讯。视窗范围依据假定的显示大小,它是您使用HORZSIZE和VERTSIZE索引时由GetDeviceCaps传回的。我在前面提到过,这些值一般是320和240毫米。如果您将显示器的图素尺寸设定为1024×768,则表5-8就是Windows
NT报告的视埠和视窗范围的值。