[VC-MFC编程实例].第4章绘图.pdf

  1. 1、本文档共24页,可阅读全部内容。
  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文档。上传文档
查看更多
下载 第4章 绘 图 在前面几章中,Wi n d o w s为我们做了所有的绘图工作—从绘制一个窗口的非客户区到绘 制通用控件。本章将讨论怎样用 M F C 的C D C类绘制控件和视图,我们将讨论: ■ Wi n d o w s和M F C支持的绘图工具类型。 ■ Wi n d o w s和M F C支持的绘图模式和特性。 ■ 两种存储为将来显示用的绘图命令的方法:元文件 ( M e t a f i l e )和路径( P a t h ) 。 ■ 怎样在抖动色(dithered color)和未经抖动色(nondithered color) 中绘图。 ■ 什么时候Wi n d o w s绘制它的窗口。 4.1 设备环境 若自己编写一个函数在屏幕上画一条直线,将需要以下类型的调用变量: ■ 直线坐标(起点x, y ,终点x, y) 。 ■ 线条颜色。 ■ 线条粗细。 若要使功能更复杂些,还必须添加: ■ 在(像素、英寸或厘米) 中指定进行绘图的度量单位的能力。 ■ 在打印机或一个图形文件中绘制直线的能力。 为了方便,还希望将直线绘制在任何显示器或者任何打印机上,而不必考虑显示卡或打 印机的类型。 如果考虑所有这些属性,该函数的结构如下: DrawLine (x1, y1, x2, y2, color, width, device, limits, units) 虽然相当直观,但该函数有一个隐含的费用—每当画一条直线,所有这些参数将必须压 入堆栈中。同时,该函数也没有保留扩展功能的余地。要添加变量,将必须对旧函数编辑任 何引用。 因此,怎样才能减少需要的调用变量的数目并预留扩展空间呢?一种方法是写一个包含 函数所需的大多数变量的 C + +类,并将该类作为一个变量进行传输。甚至可以使该类用一些 合法的默认值构造自己,以便在特殊场合中使用。 Wi n d o w s使用一个称为设备环境(DeviceContext)的对象的方法—但该对象的创建没有 一个C + +类,因为Wi n d o w s早于并存在于C + +之外。设备环境对象用一些默认值创建,可以用 它们创建默认的设备环境。应用 Wi n d o w s绘制一直线,所需的是一个设备环境对象的指针和 直线坐标,设备环境对象的指针叫做设备环境句柄(H D C)。 : : M o v e To(HDC hdc,int x,int y); : : L i n e To(HDC hdc,int x,int y); 要绘制一个完整的形状,:: M o v e To( ) 函数只被调用一次。然后, : : L i n e To( ) 函数被调用, 没有一个多余的变量被压进堆栈(见图4 - 1)。 52 第一部分 基 础 知 识 下载 ①使用设备环境以前 设备环境 ②使用设备环境以后 图4-1 设备环境减少调用变量的数目并预留扩展空间 注意 因为设备环境在内存中创建,而内存经常受到扰动,它的地址可能是经常变化的。 因此,一个设备环境句柄不是直接指向设备环境对象,而是指向另外一个跟踪设备环 境地址的指针。 设备无关 设备环境是设备无关的,它允许你编写软件而不必指定一个设备。这些软件必须知道的 是:它是编写一个设备环境的,而不管该设备环境是屏幕还是 E p s o n打印机。之后,设备环境 可以被分配给一个打印机、屏幕、位图或一个文件。 4.2 在MFC环境中创建一个设备环境 M F C用C D C类封装了一个设备环境对象, C D C 的成员变量m _ h d c 指向它所拥有的设备环 境,用户可以创建四种类型的设备环境: ■ 屏幕。 ■ 打印机。 ■ 只有打印机的信息部分。 ■ 位图。 4.2.1 屏幕 创建一个屏幕设备环境,可以用:

文档评论(0)

prtscr + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档