再上一篇:3.3 滚动条的应用
上一篇:3.4 关于文本显示的更多内容
主页
下一篇:4.2 设备描述表
再下一篇:4.3 设备坐标系和逻辑坐标系
文章列表

4.1 图形设备接口

《Windows 下的 C/C++高级编程》讲述Windows环境下调用Win32 API函数程序设计

图形设备接口(Graphics Device Interface,简称为GDI),是Windows操作系统的子系统,负责在显示设备上显示图形。显而易见,GDI子系统是Windows非常重要的组成部分。不但Windows应用程序显示图形时需要使用GDI,就连Windows本身也使用GDI来显示窗口、菜单和鼠标光标等用户界面对象。

GDI的主要目标之一是支持在各种输出设备(如显示器、打印机和绘图仪等)上进行与设备无关的图形输出。Windows的图形大部分是由GDI.DLL动态链接库输出的函数来处理的。GDI动态链接库通过调用在不同设备驱动程序模块中的例程来控制输出设备。例如,显示设备驱动程序用于访问与视频显示器有关的硬件。通过GDI,Windows可以确定驱动程序能够进行什么工作,并且由于应用程序只与GDI进行交互,所以GDI通过将应用程序与不同的输出设备隔离,使得应用程序可以在支持Windows的任意图形输出设备上工作。这就实现了图形输出的与设备无关性。

图形输出设备可以分为两大类:光栅设备和矢量设备。光栅设备将图像表示为点(像素)的图形。这类输出设备包括视频显示器、点阵打印机和激光打印机等。矢量设备用线段来绘制图形。这类输出设备包括绘图仪等。Windows的GDI是一种隔离了具体硬件特性的图形语言,虽然输出设备用像素来显示图形,但GDI既可以被用作高级的矢量绘图系统,也可以被用来进行比较低级的像素操作。

在编写Windows应用程序时,程序员不必花太多的精力去考虑有关颜色的问题。如果在应用程序中使用了一种当前显示设备不能表示的颜色,则Windows会自动为应用程序选择一种当前显示设备可以显示的、与指定的颜色最相近的纯颜色,或者通过将几种纯色混合来表示所指定的颜色。当在单色显示器上显示彩色的内容时,Windows会自动将色彩转换为灰度来表示。应用程序也可以在程序中指定输出设备的有关特性,例如,可以表示的最大颜色数目、设备的显示区尺寸等,以便最大限度地发挥硬件的效能。

Windows下的C/C++高级编程