Windows GDI图形设备接口:绘制椭圆与映像模式

需积分: 16 0 下载量 35 浏览量 更新于2024-08-24 收藏 911KB PPT 举报
"这篇文档主要介绍了Windows操作系统中的图形设备接口(GDI)以及如何使用C++来绘制椭圆。在Windows环境下,程序并不直接与硬件交互进行图形绘制,而是通过图形设备接口(GDI)来实现设备无关性的绘图。GDI提供了一系列函数,使得开发者能够在设备描述表(Device Context, DC)上进行绘图操作,然后由系统将这些逻辑绘制映射到实际的物理设备,如显示器或打印机。 设备描述表(DC)是物理设备的逻辑表示,它抽象了不同硬件的具体差异,使得多个应用程序能够共享同一硬件资源。GDI函数通过DC作为参数来在对应设备上绘制图形。例如,`Ellipse()`函数用于在指定矩形区域内绘制椭圆。 在Windows编程中,坐标系统分为逻辑坐标和物理坐标。逻辑坐标是绘图函数使用的坐标系统,而物理坐标则通常由鼠标等输入设备获取。映像模式是连接这两种坐标系统的关键,它定义了如何将逻辑单位转换为物理设备的度量单位。Windows支持8种不同的映像模式,包括MM_TEXT(默认模式),MM_LOENGLISH,MM_HIENGLISH,MM_LOMETRIC,MM_HIMETRIC,MM_TWIPS以及两种 isotropic 和 anisotropic 模式,每种模式都有其特定的单位和方向规则。 示例代码展示了如何获取设备上下文(`GetDC()`),绘制矩形和椭圆(`Rectangle()`和`Ellipse()`),并释放设备上下文(`ReleaseDC()`)。特别地,`SetMapMode(hdc, MM_LOENGLISH)`的使用会改变映像模式,影响后续绘图的尺寸和位置,如果省略这一步,绘图将基于默认的映像模式(通常是MM_TEXT)。 理解GDI和设备描述表的概念,以及如何利用它们来控制绘图,对于编写Windows平台的图形用户界面应用程序至关重要。开发者可以通过调整映像模式,适应不同的设备和输出需求,实现更精确的图形绘制。"