Visual C 2010入门经典 第16章.pdfVIP

  1. 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
Visual C 2010入门经典 第16章

第16章 在窗口中绘图 本章要点 ● Windows 为窗口绘图提供的坐标系统 ● 如何使用设备上下文提供的功能来绘制形状 ● 程序如何以及何时在窗口中绘图 ● 如何定义鼠标消息的处理程序 ● 如何定义自己的形状类 ● 在窗口中绘制形状时如何对鼠标进行编程 ● 如何让程序捕获鼠标 ● 如何在C++/CLI 程序中实现Sketcher 绘图功能 本章将给Sketcher 应用程序添加一些内容。主要讨论如何获得在应用程序窗口中显示的图形输 出。学习完本章以后,除一个元素以外,您将能够绘制添加过菜单项的其他所有元素。如何将它们 存储在文档中则留待下一章讨论。 16.1 窗口绘图的基础知识 前面在第12 章已经讨论过,如果想要在窗口工作区中绘图,则必须遵守某些规则。一般来说, 每当将WM_PAINT 消息发送到应用程序时,就必须重画工作区。这是因为有许多事件需要应用程 序重新绘制这个窗口——如用户调整了正在绘图的窗口大小,或者是在用户移动另一个窗口以暴露 以前隐藏的窗口。Windows 操作系统随同WM_PAINT 消息一起发送信息,使得我们可以确定哪部 分工作区需要重新创建。这就意味着在响应每个WM_PAINT 消息时不必绘制所有工作区,而只需 绘制标识为更新区的区域。在MFC 应用程序中,MFC 解释WM_PAINT 消息,并将它重定向到某 一个类中的一个函数。本章稍后将解释如何处理这一事件。 Visual C++ 2010 入门经典(第5 版) 16.1.1 窗口工作区 由于可以使用鼠标来回拖动窗口,并且可以通过拖动其边框调整窗口大小,因此窗口在屏幕上 没有一个固定的位置,甚至没有一个固定的可视区。那么如何知道应当在屏幕上的什么地方绘图呢? 幸运的是不需要了解这个问题。因为Windows 提供了一种一致的窗口绘图方法,不必担心图形 在屏幕上的位置,否则窗口绘图将变得非常复杂。Windows 为一个窗口的工作区提供了一种坐标系 统,它对于这个窗口来说是本地的。它始终把工作区的左上角作为它的参考点。工作区中的所有点 都是相对于这个点定义的,如图16-1 所示。 x 轴正方向 b 原点(0,0) 点(a,b) a MM_TEXT 映射模式 y 轴正方向 图 16-1 不管这个窗口在屏幕上的什么地方,也不管它有多大,某个点相对于工作区左上角的水平距离 和垂直距离始终不变。当然,Windows 需要跟踪这个窗口在什么地方,在工作区中的一个点上进行 绘图操作时,Windows 需要查明这个点在屏幕上的实际位置。 16.1.2 Windows 图形设备界面 正如在第12 章和第13 章所看到的,我们直接感觉到的是实际上并没有把数据写到屏幕上。所 有到显示屏的输出都是图形,而不管它是直线、圆还是文本。Windows 坚持使用图形设备界面 (Graphical Device Interface,GDI)定义这种输出。GDI 支持在对图形输出编程时不依赖于显示它的硬 件,这意味着程序可以在具有不同显示硬件的不同机器上运行。除了显示屏以外,Windows GDI 还 支持打印机和绘图仪,所以,将数据输出到打印机和绘图仪时涉及的机制实际上与在屏幕上显示信 息时一样。 1. 设备上下文 当想要在图形输出设备(如显示屏)上进行绘图操作时必须使用设备上下文。在第13 章我们使用 设备上下文在窗口的工作区绘制Mandelbrot 集。当想要将输出发送到其他图形设备(例如,打印机或 绘图仪)时,也使用设备上下文。 设备上下文是Windows 定义的一种数据结构,它包含的信息允许Wind

文档评论(0)

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

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

1亿VIP精品文档

相关文档