| 操作系统 办公 实用知识 设计 开发 WEB开发 移动开发 数据库 软件工程 网管 安全 管理 信息化 答疑 渠道 |
C++ Builder 刷新屏幕第6章 使用图形和多媒体 图形和多媒体元素可为应用程序增添光彩。C++Builder提供了几种为应用程序引入这种功能的方法。要加入图形元素,可以在设计时插入一幅预先绘制好的图片,可在设计时使用图形控件创建它们,也可在运行时动态地画出它们。为添加多媒体功能,C++Builder提供了一些可播放声音与视频剪辑的特殊组件。 6.1 图形编程概述 注意因为TCanvas是Windows设备场境的一个封装的资源管理器,所以也可在画布中使用所有的WindowsGDI函数。画布的Handle属性是设备场境的处理指针。图形在应用程序中如何显示依赖于拥有所用画布的对象类型。若直接在控件的画布上绘图,则该图会立即显示。若绘制诸如TBitmap画布的非屏幕图象,则该图不会显示,直到将其复制到控件的画布中时才会显示。也就是说,当绘制位图并将其赋给图形控件时,仅当控件有机会处理其OnPaint消息时才会显示该图。 当处理图形时,通常会遇到绘图(drawing)和画图(painting)两个名词。 在本章开始的示例中展示如何绘出不同的图形,但它们都是在响应OnPaint事件。下列各节将说明如何在响应其他事件时进行同样的绘图操作。 6.1.1 刷新屏幕 OnPaint事件自动生成的缺省名为FormPaint。有时可能需要使用Refresh方法来刷新组件或窗体。例如,可能要在窗体的OnResize事件处理程序中调用Refresh方法以便刷新图形,或在画窗体的背景图时调用它。 虽然有些操作系统会自动刷新窗口中无效的客户区部分,然而Windows不会这样做。在Windows操作系统中绘制在屏幕上的东西都是永久的。当窗体或控件变得模糊不清时,例如拖动窗口,当窗体或控件重新显示时,必须自己重画模糊的区域。有关WM_PAINT消息的详细说明,请参阅Windows的联机帮助。 若使用TImage控件,画图和刷新TImage中的图形由VCL自动处理。在TImage中绘图会创建一个固有的图像。因此不需要自行刷新其包含的图像。与此相反,TPaintBox的画布是直接对应于屏幕设备的,因此任何在PaintBox的画布中绘制的东西都是临时性的。其实大部分的控件都是这样,包括窗体自身也是如此。因此,若在TPaintBox的构造函数中绘图或画图,则需要把相同的程序代码加到OnPaint事件处理程序中,以便每次客户区无效时能重画其图像。
今日推荐
|
重点推荐
领军企业技术文库
+更多领军技术文库
最新专题
电子杂志订阅
| ||||||||