屏幕绘图-Read.PDFVIP

  • 2
  • 0
  • 约3.22万字
  • 约 20页
  • 2017-08-19 发布于天津
  • 举报
屏幕绘图-Read

第7 章 屏 幕 绘 图 教学提示:屏幕是最基本的输出设备,屏幕绘图及文本显示是应用程序最常用的功能, 本章讲述 Visual C++ 中屏幕绘图及文本显示的工作原理及其基本编程方法。 教学要求:本章要求掌握设备描述符表、GDI 对象、映射方式等概念,掌握基本的绘 图函数及文本显示函数的用法。 7.1 设备描述符表与 CDC 类 Windows 操作系统是一个图形界面的操作系统,为了方便地在屏幕上和打印机上绘制 或输出图形与文本,Windows 系统中为用户提供了设备描述符表和 GDI 函数来实现应用程 序与物理设备间的接口。 MFC 的 CDC 类对设备描述符表和 GDI 函数进行了全面的封装,使这两者的使用更加 方便。 7.1.1 设备描述符表与 GDI 对象 设备描述符表也称为设备上下文,它是 Windows 应用程序与设备驱动程序和输出设备 (如打印机、显示器等)之间的接口。 1. 设备描述符表的概念 在 Windows 下,有多种输出设备,如各种显示卡、打印机、绘图仪等。为了简化应用 程序对这些性质不同的设备的访问,实现与设备无关的绘图操作,Windows 提供了一种叫 做设备描述符表(或称为 DC) 的机制,用来作为应用程序与控制输出设备的低层 API 之间的 通道。设备描述符表是一种可以在其上绘图的“逻辑画布”,它接收应用程序的绘图命令, 再将其翻译为控制设备驱动程序的低层指令。这样,通过设备描述符表机制,程序可以独 立于“真实”的硬件。 Windows 中的设备描述符表分为以下 4 种类型。 显示器型:支持显示器上的绘图操作。 打印机型:支持打印机和绘图仪上的绘图操作。 内存型:支持位图上的绘制操作。 信息型:支持设备数据的访问。 2. GDI 对象 除了设备描述符表外,Windows 还使用另一种对象——GDI 对象。GDI 是图形设备接 口的缩写。GDI 对象是绘图工具,比如画刷、画笔等。绘图过程可描述为使用 GDI 对象(逻 辑画笔或画刷等)在设备描述符表(逻辑画布)上绘制的过程。 ·156 · Visual C++ 6.0 程序设计教程与实训 7.1.2 CDC 类 设备描述符表其实是一种数据结构,由 Windows 系统管理,并与物理设备关联。在 Windows 中针对DC 的操作是首先申请DC ,申请成功后Windows 将返回一个 DC 的句柄(标 记 Windows 对象的惟一的整数) ,针对这一句柄再调用有关的 Windows API 函数进行绘图 操作,最后通过这个句柄再释放这个 DC 。MFC 中的 CDC 类封装了 DC 的句柄、一些属性 及与 DC 相关的操作。由于有多种类型的 DC ,CDC 类有多种派生类来管理各种具体类型 的 DC 。CDC 类及其派生类的关系如图 7.1 所示。 由于 DC 与屏幕绘图及文本显示操作密切相关,CDC 类 CObject 封装了相当多的函数,主要包括以下几类。 初始化函数,比如为指定的设备创建设备描述符表等。 CDC 设备描述符表函数,比如保存或恢复 DC 的状态等。 绘图及其相关函数,比如设置绘图前背景颜色、绘图 工具选择、图形绘制等。 CClientDC 文本与字体函数,比如文本输出、字体信息的取得等。 坐标与映射函数,比如设置映射方式、各种坐标的转 CMetaFileDC 换等。 CPaintDC 7.1.3 设备描述符表的申请和

文档评论(0)

1亿VIP精品文档

相关文档