|
OGPIXELSX和LOGPIXELSY仍然与在「控制台」的「显示器」程式中选择的字体有关。在Windows
98中,LOGPIXELSX和LOGPIXELSY的典型值是96和120 dpi,这取决於您选择的是小字体还是大字体。
在Windows
NT中的区别是HORZSIZE和VERTSIZE值固定表示标准显示器大小。对於普通的显示卡,取得的HORZSIZE和VERTSIZE值分别是320和240毫米。这些值是相同的,与选择的图素大小无关。因此,这些值与用HORZRES、VERTRES、LOGPIXELSX和LOGPIXELSY索引从GetDeviceCaps中得到的值不同。然而,可以用前面的公式计算在Windows
98下的HORZSIZE和VERTSIZE值。
如果程式需要实际的视讯显示大小该怎么办?也许最好的解决方法是用对话方块让使用者输入它们。
最後,来自GetDeviceCaps的另三个值与视讯大小有关。ASPECTX、ASPECTY和ASPECTXY值是每一个图素的相对宽度、高度和对角线大小,四舍五入到整数。对於正方形图素,ASPECTX和ASPECTY值相同。无论如何,ASPECTXY值应等於ASPECTX与ASPECTY平方和的平方根,就像直角三角形一样。
关於色彩
如果视讯显示卡仅显示黑色图素和白色图素,则每个图素只需要记忆体中的一位元。彩色显示器中每个图素需要多个位元。位元数越多,色彩越多,或者更具体地说,可以同时显示的不同色彩的数目等於2的位元数次方。
「Full-Color」视讯显示器的解析度是每个图素24位元-8位元红色、8位元绿色以及8位元蓝色。红、绿、蓝即「色光三原色」。混合这三种基本颜色可以生成许多其他的颜色,您通过放大镜看显示幕,就可以看出来。
「High-Color」显示解析度是每个图素16位元-5位元红色、6位元绿色以及5位元蓝色。绿色多一位元是因为人眼对绿色更敏感一些。
显示256种颜色的显示卡每个图素需要8位元。然而,这些8位元的值一般由定义实际颜色的调色盘组织的。我会在第十六章详细地讨论它们。
最後,显示16种颜色的显示卡每个图素需要4位元。这16种颜色一般固定分为暗的或亮的红、黑、蓝、青、紫、黄、两种灰色。这16种颜色要回溯到老式的IBM
CGA。
只有在某些怪异的程式中才需要知道视讯显示卡上 |