linux社区爱心援助Linux认证系列教程业界动态站务新闻公司招聘网络学院网址大全LPI专题CISCO专题
设为首页
加入收藏
管理团队
JSP  
JAVA  
PERL  
 您的位置:首页 > 开发语言 > c/c++/c# >
栏目导栏
  php
  JSP
  ASP
  asp.net
  JAVA
  c/c++/c#
  perl
  JavaScript
  Basic
  Delphi
资料搜索
热门文章
·Windows/Linux下配置Eclipse+C
·c语言static与extern的用法
·VC++(Ctime日期函数)应用
·typedef struct和struct的区别
·C/C++对文件操作
·C常用算法程序实例-线性代数方
·C#发送Email邮件方法总结
·struct的初始化,拷贝及指针成
·C语言入门实例 switch使用
·c++二叉树实现源代码
·对初学者的建议:如何学习C语言
·C++ Builder 处理控件中的文本
·常用的BCB & Delphi 函数
·C++入门经典教程完全版01-引言
·C++ Builder 使用Canvas对象的
最新文章
·使用C/C++扩展Python
·C语言入门实例 switch使用
·在C#里实现DATAGRID的打印预览
·如何使用 Visual C# .NET 创建
·C#发送Email邮件方法总结
·一道C#面试题目引发的思考
·c语言艺术清屏
·c语言static与extern的用法
·大数的阶乘算法
·C#编码好习惯
·构造函数,复制构造函数
·typedef struct和struct的区别
·struct的初始化,拷贝及指针成
·超强的指针学习笔记推荐
·STL中erase方法对链表类容器的
Google
 
C++ Builder 在应用程序中处理多个绘图对象
[ 作者:  加入时间:2007-11-02 13:34:54  来自:Linux联盟收集整理 ]
6.1.6 在应用程序中处理多个绘图对象BKBLinux联盟
各种不同的绘图方法(矩形、形状、直线等等)通常放在工具栏和按钮面板中。应用程序可单击快速按钮以选取所需的绘图对象。BKBLinux联盟
BKBLinux联盟
本节包括:BKBLinux联盟
· 跟踪所用的绘图工具。BKBLinux联盟
· 使用快速按钮改变工具。BKBLinux联盟
· 使用绘图工具。BKBLinux联盟
BKBLinux联盟
1.跟踪所用的绘图工具BKBLinux联盟
绘图程序需要实时跟踪用户可能要选择使用的绘图工具(如直线、矩形、椭圆形或圆角矩形)。通常,可以声明C++枚举类型来列出可用的绘图工具。因为枚举类型也是类型声明,可以使用C++的类型检查来确认这些值。BKBLinux联盟
例如,下列代码声明枚举类型列出图形应用程序可用的绘图工具:BKBLinux联盟
BKBLinux联盟
BKBLinux联盟
TDrawingTool类型的一个变量只能分配枚举值dtLine、dtRectangle、dtEllipse或dtRoundRect其中之一。习惯上,类型标识符是以字母T开头的,而一组相似的常数(如上述的枚举值)则以2个字母的前缀字符(如dt表示drawingtool)开头。BKBLinux联盟
BKBLinux联盟
下列代码在窗体中添加一个用于跟踪窗体绘图工具的字段:BKBLinux联盟
BKBLinux联盟
BKBLinux联盟
2.使用快速按钮改变工具BKBLinux联盟
每个绘图工具都需要一个相关的OnClick事件处理程序。假定应用程序对于4个绘图工具(直线、矩形、椭圆形和圆角矩形)各有一个工具栏按钮。可将下列事件处理程序分配给4个绘图工具按钮的OnClick事件,把DrawingTool分别设为适当值:BKBLinux联盟
BKBLinux联盟
BKBLinux联盟
3.使用绘图工具BKBLinux联盟
当知道所用工具后,还必须指出如何绘制不同的形状。唯一可执行任何绘图操作的方法是鼠标移动和释放鼠标按钮的事件处理程序,且不管所选择的工具为何,都能绘制直线。要使用不同的绘图工具,需用代码指定如何使用所选的工具来绘图。并需将代码加到每个工具的事BKBLinux联盟
件处理程序中。BKBLinux联盟
BKBLinux联盟
本部分描述了:BKBLinux联盟
· 绘制形状。BKBLinux联盟
· 在事件处理程序中共享程序代码。BKBLinux联盟
(1) 绘制形状BKBLinux联盟
绘制形状和绘制直线一样容易:每个形状都只有单一的状态,只需设置坐标即可。以下是重写的所有4个绘制形状工具的OnMouseUp事件处理程序:BKBLinux联盟
BKBLinux联盟
BKBLinux联盟
当然,还需要更新事件处理程序来绘制形状:BKBLinux联盟
BKBLinux联盟
BKBLinux联盟
通常在上例中所有重复的程序代码会包含在不同的例程中。下节将说明如何把绘制形状的代码放在单一的例程中,所有的鼠标事件处理程序都可调用。BKBLinux联盟
BKBLinux联盟
(2) 在事件处理程序中共享程序代码BKBLinux联盟
当发现在许多事件处理程序中使用相同代码时,可以把重复的代码移至可让事件处理程序共享的单一例程中,以增强程序的效率。BKBLinux联盟
BKBLinux联盟
给窗体增加一个方法的步骤如下:BKBLinux联盟
1) 将方法的声明加到窗体对象中。BKBLinux联盟
可以把声明加到窗体对象声明结尾处的public或private部分。若程序代码只是共享一些事件处理的细节,那么较安全的作法是把共享方法加入private部分。BKBLinux联盟
2) 在窗体单元的.cpp文件中编写方法的实现代码。BKBLinux联盟
方法实现代码的头必须和声明完全匹配,并以相同顺序拥有相同参数。BKBLinux联盟
下列代码给窗体增加一个DrawShape方法,并在每个事件处理程序中调用它。首先,把DrawShape的声明加到窗体对象的声明中:BKBLinux联盟
BKBLinux联盟
BKBLinux联盟
然后,在窗体单元的.cpp文件中编写DrawShape的实现代码:BKBLinux联盟
BKBLinux联盟
BKBLinux联盟
修改其他事件处理程序以调用DrawShape。BKBLinux联盟

 

Linux联盟收集整理 ,转贴请标明原始链接,如有任何疑问欢迎来本站Linux论坛讨论
评论】【加入收藏夹】【 】【打印】【关闭
※ 相关链接
 ·C++ Builder 使用Canvas的方法来绘制图形对象  (2007-11-02 13:34:06)
 ·C++ Builder 使用Canvas对象的属性  (2007-11-02 13:33:10)
 ·C++ Builder 画布的通用属性和方法  (2007-11-02 13:32:25)
 ·C++ Builder 刷新屏幕  (2007-11-02 13:31:55)
 ·C++ Builder 在控件中加入图形  (2007-11-02 13:31:11)
 ·C++ Builder 处理控件中的文本  (2007-11-02 13:29:39)
 ·C++ Builder 实现控件的拖动-停靠操作  (2007-11-02 13:28:44)
 ·C++ Builder 实现控件拖放操作  (2007-11-02 13:28:01)
 ·使用 C++ Builder 框架  (2007-10-23 13:49:32)
 ·使用 C++ Builder 对象仓库介绍  (2007-10-23 13:47:24)