使用Canvas对象的属性.docVIP

  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文档。上传文档
查看更多
使用Canvas对象的属性

第6章 使用图形和多媒体 图形和多媒体元素可为应用程序增添光彩。C++Builder提供了几种为应用程序引入这种功能的方法。要加入图形元素,可以在设计时插入一幅预先绘制好的图片,可在设计时使用图形控件创建它们,也可在运行时动态地画出它们。为添加多媒体功能,C++Builder提供了一些可播放声音与视频剪辑的特殊组件。 6.1 图形编程概述 VCL图形组件封装了Windows图形设备接口(GDI),使得在Windows程序设计中添加图形变得很容易。在C++Builder应用程序中绘制图形,应在对象的画布(canvas)中绘制,而不是直接在对象中绘图。画布是对象的属性,同时它本身也是对象。画布对象的一个主要优点是它能够有效地处理资源并能管理设备场境,所以应用程序可以使用相同的方法在屏幕、打印机、位图或图元文件中绘图。画布只在运行时有效,所以用户必须通过编写代码来使用画布。 注意因为TCanvas是Windows设备场境的一个封装的资源管理器,所以也可在画布中使用所有的WindowsGDI函数。画布的Handle属性是设备场境的处理指针。图形在应用程序中如何显示依赖于拥有所用画布的对象类型。若直接在控件的画布上绘图,则该图会立即显示。若绘制诸如TBitmap画布的非屏幕图象,则该图不会显示,直到将其复制到控件的画布中时才会显示。也就是说,当绘制位图并将其赋给图形控件时,仅当控件有机会处理其OnPaint消息时才会显示该图。 当处理图形时,通常会遇到绘图(drawing)和画图(painting)两个名词。 · 绘图是编写代码来创建一个单一的、特定的图形元素(如线条或形状)。在程序中,通过调用画布的绘图方法来告诉对象如何在其画布的特定位置上绘出特定的图形。 · 画图是创建对象的整个外观。画图通常会使用到绘图。也就是说,在响应OnPaint事件时,对象通常要绘出几个图形。例如,一个编辑框通过绘出一个矩形,然后再在内部绘出许多文本来画出自身。而一个形状控件通过绘制单一的图形来画出自身。 在本章开始的示例中展示如何绘出不同的图形,但它们都是在响应OnPaint事件。下列各节将说明如何在响应其他事件时进行同样的绘图操作。 6.1.1 刷新屏幕 有时,Windows会决定刷新屏幕上的对象外观,为此它生成WM_PAINT消息,这个消息会使VCL对象调用OnPaint事件。当使用Refresh方法时,VCL会调用已编写的所有对象的OnPaint事件处理程序。 OnPaint事件自动生成的缺省名为FormPaint。有时可能需要使用Refresh方法来刷新组件或窗体。例如,可能要在窗体的OnResize事件处理程序中调用Refresh方法以便刷新图形,或在画窗体的背景图时调用它。 虽然有些操作系统会自动刷新窗口中无效的客户区部分,然而Windows不会这样做。在Windows操作系统中绘制在屏幕上的东西都是永久的。当窗体或控件变得模糊不清时,例如拖动窗口,当窗体或控件重新显示时,必须自己重画模糊的区域。有关WM_PAINT消息的详细说明,请参阅Windows的联机帮助。 若使用TImage控件,画图和刷新TImage中的图形由VCL自动处理。在TImage中绘图会创建一个固有的图像。因此不需要自行刷新其包含的图像。与此相反,TPaintBox的画布是直接对应于屏幕设备的,因此任何在PaintBox的画布中绘制的东西都是临时性的。其实大部分的控件都是这样,包括窗体自身也是如此。因此,若在TPaintBox的构造函数中绘图或画图,则需要把相同的程序代码加到OnPaint事件处理程序中,以便每次客户区无效时能重画其图像。 6.1.2 图形对象的样式 VCL提供了表6-1中所列出的图形对象。这些对象都有可在画布上绘图的方法以及加载和保存图形文件的方法,这些方法在6.1.5节和6.1.8节中说明。 6.1.3 画布的通用属性和方法 表6-2列出了画布(Canvas)对象的通用属性,表6-3列出了可用的方法。详细的属性和方法,请参阅联机帮助中的TCanvas组件。 6.1.4 使用Canvas对象的属性 使用Canvas对象可以设置用于绘制线条的画笔、用于填充图形的画刷、用于写文本的字体、以及用于显示图像的像素数组等的属性。 下列各节说明以下内容: · 使用画笔。 · 使用画刷。 · 读取和设置像素。 1.使用画笔 画布的Pen属性控制线条出现的方式,包括用来绘制形状外框的线条。绘制一条直线只不过是更改两个点间的一组像素值。 画笔本身有4个可更改的属性:Color、Width、Style和Mode。 · Color属性:更改画笔的颜色。 · Width属性:更改画笔的宽度。 · Style属性:更改画笔的样式。 · Mode属性:

文档评论(0)

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

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

1亿VIP精品文档

相关文档