加入收藏 | 设为首页 | 在线留言 | RSS
您当前的位置:首页 > 程序设计 > C++

C++ Builder 在应用程序中处理多个绘图对象

时间:2010-01-21 11:49:35  来源:  作者:

6.1.6 在应用程式中处理多个绘图对象
各种不同的绘图方法(矩形、形状、直线等等)通常放在工具栏和按钮面板中。应用程式可单击快速按钮以选取所需的绘图对象。

本节包括:
・ 跟踪所用的绘图工具。
・ 使用快速按钮改变工具。
・ 使用绘图工具。

1.跟踪所用的绘图工具
绘图程式需要实时跟踪用户可能要选择使用的绘图工具(如直线、矩形、椭圆形或圆角矩形)。通常,能够声明C++枚举类型来列出可用的绘图工具。因为枚举类型也是类型声明,能够使用C++的类型检查来确认这些值。
例如,下列代码声明枚举类型列出图像应用程式可用的绘图工具:


TDrawingTool类型的一个变量只能分配枚举值dtLine、dtRectangle、dtEllipse或dtRoundRect其中之一。习惯上,类型标识符是以字母T开头的,而一组相似的常数(如上述的枚举值)则以2个字母的前缀字符(如dt表示drawingtool)开头。

下列代码在窗体中添加一个用于跟踪窗体绘图工具的字段:


2.使用快速按钮改变工具
每个绘图工具都需要一个相关的OnClick事件处理程式。假定应用程式对于4个绘图工具(直线、矩形、椭圆形和圆角矩形)各有一个工具栏按钮。可将下列事件处理程式分配给4个绘图工具按钮的OnClick事件,把DrawingTool分别设为适当值:


3.使用绘图工具
当知道所用工具后,还必须指出怎样绘制不同的形状。唯一可执行任何绘图操作的方法是鼠标移动和释放鼠标按钮的事件处理程式,且不管所选择的工具为何,都能绘制直线。要使用不同的绘图工具,需用代码指定怎样使用所选的工具来绘图。并需将代码加到每个工具的事
件处理程式中。

本部分描述了:
・ 绘制形状。
・ 在事件处理程式中共享程式代码。
(1) 绘制形状
绘制形状和绘制直线相同容易:每个形状都只有单一的状态,只需配置坐标即可。以下是重写的任何4个绘制形状工具的OnMouseUp事件处理程式:


当然,还需要更新事件处理程式来绘制形状:


通常在上例中任何重复的程式代码会包含在不同的例程中。下节将说明怎样把绘制形状的代码放在单一的例程中,任何的鼠标事件处理程式都可调用。

(2) 在事件处理程式中共享程式代码
当发现在许多事件处理程式中使用相同代码时,能够把重复的代码移至可让事件处理程式共享的单一例程中,以增强程式的效率。

给窗体增加一个方法的步骤如下:
1) 将方法的声明加到窗体对象中。
能够把声明加到窗体对象声明结尾处的public或private部分。若程式代码只是共享一些事件处理的细节,那么较安全的作法是把共享方法加入private部分。
2) 在窗体单元的.cpp文档中编写方法的实现代码。
方法实现代码的头必须和声明完全匹配,并以相同顺序拥有相同参数。
下列代码给窗体增加一个DrawShape方法,并在每个事件处理程式中调用他。首先,把DrawShape的声明加到窗体对象的声明中:


然后,在窗体单元的.cpp文档中编写DrawShape的实现代码:


修改其他事件处理程式以调用DrawShape。

 

 


来顶一下
返回首页
返回首页
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表
推荐资讯
使用ADO.NET访问Oracle 9i存储过程(上)
使用ADO.NET访问Oracl
霍夫曼树编码的实现
霍夫曼树编码的实现
C++ Builder 在应用程序中处理多个绘图对象
C++ Builder 在应用程
使用 C++ Builder 对象仓库
使用 C++ Builder 对
相关文章
    无相关信息
栏目更新
栏目热门