图形基础 图形设备接口(GDI:Graphics Device Interface)是Window s 的子系统,它负责在视频显示器和打印机上显示图形。正如您所认为的那样,GDI 是Window s 非常重要的部分。不只您为Window s 编写的应用系统在显示视觉信息时使用GDI,就连Window s 本身也使用GDI来显示使用者接口对象,诸如菜单、卷动列、图标和鼠标光标。 不幸的是,如果要对GDI 进行全面的讲述,将需要一整本书——当然不是这本书。在本章中,我只是想向您提供画线和填入区域的基本知识,这对于理解下面几章的GDI 已经足够了。在后面几章中会讲述 GDI 支持的位图、metafile 以及格式化文字。 GDI 的结构 从程序编写者的观点来看,GDI 由几百个函数调用和一些相关的数据类型、宏和结构组成。但是在开始讲述这些函数的细节之前,让我们先从宏观上了解一下 GDI 的整体结构。 GDI 原理 Window s 98和Microsoft Window s NT 中的图形主要由 GDI32.DLL 动态链接库输出的函数来处理。在Window s 98中,这个 GDI32.DLL 实际是利用16位 GDI.EXE 动态链接库来运行许多函数。在Window s NT 中,GDI.EXE 只用于16位的程序。 这些动态链接库调用您安装的视频显示器和任何打印机调用驱动程序中的例程。视频驱动程序存取视频显示器的硬件,打印机驱动程序将 GDI 命令转换为各种打印机能够理解的代码或者命令。显然,不同的视频显示卡和打印机要求不同的设备驱动程序。 因为PC 兼容机种上可以连接许多种不同的视频设备,所以,GDI 的主要目的之一是支持与设备无关的图形。Window s 程序应该能够毫无困难地在Window s 支持的任意一种图形输出设备上运行,GDI 通过将您的程序和不同输出设备的特性隔离开来的方法来达到这一目的。 图形输出设备分为两大类:位映像设备和向量设备。大多数 PC 的输出设备是位映像设备,这意味着它们以图点构成的数组来表示图像,这类设备包括视频显示卡、点阵打印机和激光打印机。向量设备使用线来绘制图像,通常局限于绘图机。 许多传统的计算机图形程序设计方式都是完全以向量为主的,这意味着使用向量图形系统的程序与硬件有着一定层次的隔离。输出设备用像素表示图形,但是程序与程序接口之间并不是用像素进行沟通的。您当然可以使用Window s GDI 作为一个高阶的向量绘制系统,同时也可以将它用于比较低阶的像素操作。 从这方面来看,Window s GDI 和传统的图形接口语言之间的关系,就如...