Chinaunix首页 | 论坛 | 博客
  • 博客访问: 103528
  • 博文数量: 16
  • 博客积分: 1435
  • 博客等级: 上尉
  • 技术积分: 170
  • 用 户 组: 普通用户
  • 注册时间: 2007-06-15 18:51
个人简介

Software

文章分类

全部博文(16)

文章存档

2012年(1)

2011年(1)

2010年(2)

2009年(1)

2008年(6)

2007年(5)

我的朋友

分类: C/C++

2008-05-11 23:54:03

上一个我自编的Chart尚未完善,现在已经完成了自动OnPaint来刷新画面了。
现在我也把它编成自定的控件(Customized Control)。
 
现在最新的Chart是 1.0.0.2 版本的。
(注:1.0.0.2 版本有许多的更改了。)
 
在Chart.h里:
 
//Chart.h
class CChart: public wxControl      //以wxControl派生CChart
{
   //必须加入以下两行,  
   DECLARE_DYNAMIC_CLASS(CChart)    //定义动态的class
   DECLARE_EVENT_TABLE()            //定义事件表
   .
   .
 
另外,~CChart()得换成private,以避免static/global 的定义,因为wxWidgets软件终止时,窗口(wxWindow)会自动清除子控件,这样会导致~CChart()制动调用两次。为了避免错误的发生,我们只能使用new 来创建CChart物件。
   private:                         //为了不可定义global或static 的类新。
   ~CChart(); 
 
 
在Chart.cpp里,加入以下的几行:
 
//Chart.cpp
BEGIN_EVENT_TABLE(CChart, wxControl) //事件表
    EVT_PAINT(CChart::OnPaint)       //刷新函数
END_EVENT_TABLE()
IMPLEMENT_DYNAMIC_CLASS(CChart, wxControl)  //CChart动态物件
 
使用法:
 
只需要两个步骤,
 
第一,创建与初始化,
 
//ChartDlgMain.cpp
CChart *pChart=new CChart(ChartDlgFrame::ID_CHART1,_T("CHART 1"),_T("Time"),_T("Temperature"));
 
注意,这里是使用new来创建的。
 
第二,绘出图表与曲线,OnButton1Click().
 
至于,OnPaint就不需要代码了,因为CChart::OnPaint()已经处理了。
 
代码:
文件: ChartDlgMain(1.0.0.2).zip
大小: 20KB
下载: 下载
阅读(3258) | 评论(0) | 转发(0) |
0

上一篇:自编的wxWidgets Chart

下一篇:自编的Validator

给主人留下些什么吧!~~