C++屏幕绘图.docVIP

  1. 1、本文档共23页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第7 章屏幕绘图及文本显示 屏幕是最基本的输出设备,屏幕绘图及文本显示是应用程序最常用的功能,本章讲述VisualC ++中屏幕绘图及文本显示的工作原理及其基本编程方法。首先介绍GDI与设备描述表,然后介绍CDC类、映射方式等概念,最后介绍基本的绘图函数及文本显示函数的用法。 7.1 GDI与设备描述表 Windows 操作系统是一个图形界面的操作系统,为了方便地在屏幕上和打印机上绘制或输出图形与文本,Windows 系统中为用户提供了设备描述表和GDI 函数来实现应用程序与物理设备间的接口。 7.1.1 GDI的基本概念 Windows图形设备接口GDI(Graphical Device Interface)是为与设备无关的图形设计的。所谓设备的无关性,就是操作系统屏蔽了硬件设备的差异,因而设备无关性能使用户编程时无需考虑特殊的硬件设置。 Windows把与绘图工作相关的操作都制作成了函数,GDI提供了用户可以调用的一套用于绘图的函数集。无论基础硬件如何,同一函数都能够生成相同结果。例如,调用GDI函数中的Ellipse函数可以绘制椭圆,调用TextOut函数可以绘制文本,调用Rectangle函数可以绘制矩形等。 除了这些绘图函数之外,GDI还有一套用于绘图的工具(对象),比如画刷、画笔等。GDI绘图工具的使用在7.4小节中介绍。 文本被看作是图形,这种处理方式虽然在创建文本输出时增加了复杂度,但也增强了灵活性。可以让原本在文本世界非常困难的工作变得非常轻松。 7.1.2设备描述环境 Windows下,有多种输出设备,如各种显示器、打印机、绘图仪等。由于用来显示图形的实际物理设备的多样性,因此要求程序设计人员具有对所有图形显示设备的编程能力是不现实的。为了简化应用这些性质不同的设备的访问,实现与设备无关的绘图操作,Windows 提供了一种叫做设备描述表的机制,也称为设备环境DC(Device Context),它是Windows 应用程序与设备驱动程序和输出设备(如打印机、显示器等)之间的接口,用来作为应用程序与控制输出设备的低层之间的通道。设备描述表是一种可以在其上绘图的“逻辑画布”,它接收应用程序的绘图命令,再将其翻译为控制设备驱动程序的低层指令。程序员可以在这个虚拟的图形显示对象上进行绘图,而把这个图形最终转换为实际物理设备上图形的工作则交给系统去完成。这样,通过设备描述符表机制,程序可以独立于“真实”的硬件。 设备环境DC(Device Context)是由GDI保存的一个数据结构,设备环境包含了输出设备的绘图特征,不同设备有不同的设备环境,在输出设备上输出的先决条件是获得该设备的设备环境。例如,为了在屏幕上显示绘图,Window程序必须有该显示器的一个DC。为了在打印机输出,还需要另一个专门为打印机创建的DC。 Windows 中的设备描述表分为以下4 种类型。 显示器型:支持显示器上的绘图操作。 打印机型:支持打印机和绘图仪上的绘图操作。 内存型:支持位图上的绘制操作。 信息型:支持设备数据的访问。 为了方便,Windows系统初始化了一套DC的属性和对象,表7-1为显示器DC的属性及默认值,获得了该设备的DC后,程序设计人员就可以在这个默认的环境下开始绘图工作了。当然,如果程序员对预置的属性和对象不满意的话,也可以按自己的要求对它们进行设置。例如,默认的DC中预置了一支黑色画笔,所以这时用GDI的绘图函数绘制的任何线条都是黑色的。如果想使用其他颜色绘制线条的话,程序员可以用其他颜色的画笔来替换这支黑色的画笔。DC在任何时候总是必须存在着一套完整的绘图工具。这意味着,不能从DC中删除一个工具,只能用一个工具替换另一个工具。绘图过程可描述为使用GDI 对象(逻辑画笔或画刷等)在设备描述表(逻辑画布)上绘制的过程。 表7-1显示器DC的属性及默认值 属性 默认值 背景色 WHITE 背景模式 OPAQUE 位图 NONE 画刷 WHITE_BRUSH 画刷起始位置 (0,0) 剪截域 DISPLAY SURFACE 颜色调色板 DEFAULT_PALETTE 绘图方式 R2_COPYPEN 字体 SYSTEM_FONT 字符间距 0 映射方式 MM_TEXT 画笔 BLACE_PEN 多边形填充方式 ALTERNATE 缩放模式 BLACKONWHITE 文本颜色 BLACK 试图范围 (1,1) 视图原点 (0,0) 窗口范围 (1,1) 窗口原点 (0,0) 7 . 2CDC 类 MFC的CDC类对设备描述表和GDI 函数进行了全面的封装,使这两者的使用更加方便。CDC 类是一个通用的类,可以从它派生出特定类型的DC子类。 1、CDC 类的成员函数 由于DC 与屏幕绘图

文档评论(0)

0716 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档