📄 untitled-14.txt
字号:
第2章在窗口中绘图43
nit cy= dc.GetDeviceCaps(VERTRES);
如果屏幕分辨率为 1024 X 768,则 CX和 Cy将分别被设为 1024和 768。
下表中列出了一些参数。将这些参数传送给GetDeviceCaps能获得与设备描述表有关
的实际输出设备方面的信息。如何理解这些返回值,在某种程度上取决于设备的类型。例
如:调用 GetDeviceCaps并将屏幕 DC的 HORZRES参数传送给它,则函数返回以像素点数目
表示的屏幕宽。对打印机DC做如此调用,则得到的是可打印页面的宽度,同样是以像素点
数目表示的。一般说来,缩放比例值(例如,LOGPIXEthX和LOGPIXEthY均首返回打印机和
其他硬拷贝设备上的正确值,但对屏幕则不行。对于一个600 dPi的激光打印机,LOGPIXEL-
SX和LOGPIXEthY都返回600。但对于屏幕,无论屏幕的尺寸或分辨率如何,两者可能都返
回96。
理解由NUMCOLORS、BITSPIXEL以及PLANES返回的颜色信息是需要一定技巧的,这
三个都是GetDeviceCaps的参数。对打印机或绘图仪来说,参数NUMCOLORS通常给出设备
能显示的颜色数目。对于单色打印机,NUMCOLORS返回人
表2.5几个有用的GETDEVICECAPS参数
参数返回值
HORZRES以像点数目表示的显示平面宽度
VERTRES以像点数目表示的显示平面高度
HORZSIZE以毫米表示的显示平面宽度
VERTSIZE以毫米表示的显示平面高度
LOGPIXEllSX水平方向上每逻辑英寸内像素点的数目
LOGPIXEDeY竖直方向上每逻辑英寸内像素点的数目
NUMCOLORS如果是显示设备,则返回静态颜色数目;如果是打印机或绘图仪,则返回能支持的颜
色数目
BIThPIXEL每个像素点的位的数目
PLANES位平面的数目
RASTERCAPS表述设备的某些特性的位标志,如设备是否为调色板式,设备是否能显示位图
TECHNOLOGY位标志,确定设备类型——屏幕、打印机、绘图仪等
然而,屏幕的颜色分辨率(屏幕可同时显示的颜色的数目)是由BITSPIXEL与PLANES
相乘并取平方得到的,如下所示:
CClientDC dc(this);
nit "Planes= dc.GetDeviceCans(PLANES);
nit nBPP= dc.GetDeviceCaps(BITSPIXEL);
nit "Colors= 1<<("PlaneS。 nBPP);
如果在配备了256色视频适配器的微机上执行这段程序代码,则"Colors将等于256。
调用GetDeviceCaps并将参数NUMCOLORS传递给它,则返回的不是256而是20——Windows
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -