怎样在VS2013MFC中使用TeeChart绘图控件

怎样在VS2013MFC中使用TeeChart绘图控件,第1张

在VS2013/MFC中使用TeeChart绘图控件的方法:

在网上下载TeeChart控件并安装,安装自然不用多说,安装完后找到安装路径(带有TeeChart5ocx文件),复制当前路径

安装完后需要对控件进行简单的注册,打开cmd,通过cd指令并粘贴原来复制好的路径,转到软件安装好的目录;

接着输入:regsvr32 TeeChart5ocx,然后d出对话框提示注册成功

注册完毕,打开VS2013,新建一个MFC项目,在VC++栏中找到MFC项目,选择好项目存放的目录并填写项目名称

接着是创建向导,只需修改选择“基于对话框”模式,至于“最小化框”和“最大化框”随各自情况选择,其余的默认点“下一步”即可

将默认生成的三个控件按delete键删除

接下来导入TeeChart控件,选择“工具"-》"选择工具箱项"-》"COM组件",找到"TeeChart Pro Active control v5"并选中它,点击"确定"

在工具箱中找到“TeeChart Pro Active control v5”控件并拖放到对话框上,适当调整控件大小

控件已经导入了,接下来需要添加相关的“类”和“变量”,首先添加类。

在“类视图”中右键项目名称,选择“添加”-》“类”;

然后选择“MFC”项中的“TypeLib中的MFC类”,点“添加”。

在注册表的可用类型库中找到"TeeChart Pro Active control v5<10>",这里不需要一直下拉慢慢找,只要输入"tee"就可以直接选中

在“接口”中选择所需的类,Teechart控件包含很多类,CTChart是必须的,对应的接口是“ITChart”,其他类包括CSeries、CAxis、CAxes、CTitles等等,这里仅以“CTChart”和“CSeries”为例,选择“ISeries”、“ITChart”。

确定以后可以在类视图中看到新添加的两个类。

接下来需要对控件关联变量,对控件右键选择“添加变量”,选择默认的控件类型,属于类“CTchart1”,对变量进行命名,这里命名为"m_chart",这样类和变量就关联好了。

项目中会多出一个tchart1h文件和tchart1cpp文件,在对话框类的头文件CTestDlgh中会有“CTchart1 m_chart;”的变量定义,但是CTestDlgcpp文件中对话框类的构造函数会多出一句“, m_chart(0)”,需要把它删除,否则会编译出错。这样前期准备工作就完成了

END

控件绘图示例-绘制随机曲线

添加一个按钮,修改属性“Caption”和“ID”

双击按钮自动生成按钮点击事件处理函数,编辑函数,注意添加CSeriesh头文件,用AddXY函数进行绘图,第一个参数表示横坐标,第二个表示纵坐标,和面两个默认NULL就行。

void CTestDlg::OnBnClickedDraw()

{

// TODO: 在此添加控件通知处理程序代码

CSeries lineSeries = (CSeries)m_chartSeries(0);

lineSeriesClear();

for (int i = 0; i < 100; i++)

{

lineSeriesAddXY((double)i, rand(),NULL,NULL);

}

}

这样,一个简单的Teechart应用程序就完成了。

你的思路是对的,要在CDiagView中调用 COpenglView的绘图函数才行在CDiagView中通过COpenglView的指针调用Invalidata()就OK了m_pCOpenglView->Invalidata() 补充回答:我所说的 m_pCOpenglView 是你自己声明一个CDiagView的成员变量m_pCOpenglView。要让这个指针指向你的COpenglView对象。拿到这个指针的方式比较多,取决于你的程序是基于SDI、MDI还是自己写的框架。如果不知道怎末拿这个指针,给我留言,告诉我这两个视图的父窗体类是什么。我给你附上解决方案这个问题的核心思想是:在CDiagView中输入参数后,要通知到COpenglView重绘界面

具体如下:

1)从CStatic派生,容易在对话框中使用。

2)能够随对话框的缩放自动改变大小,这里假设对话框中其它元素的位置基本不变。

3)曲线的粗细,颜色,线型(实,虚线)可以自由设置。

4)可以控制曲线的隐藏/显示。

5)两个坐标轴,Y轴根据数据自适应,实际数据最大最小值各偏离5%是坐标轴的最大最小值(简化起见,坐标轴采用五等分)。X轴是时间轴,一个像素点代表一个数据点,假设采样按一定的频率。

6)可以添加多条曲线。

7) 使用双缓冲,避免图形闪烁。

做一个CStatic派生控件的基本步骤:

1)定义一个从CStatic派生的类。

2)重载有关消息映射,WM_PAINT,WM_ERASEBKGND

3) 在OnPaint中绘图,在这里根据实际的需要做不同的计算,绘制。

大致可分为以下几步,I布局计算,CStatic是整个绘图区,将这个区域划分为边缘空白,坐标轴区,曲线区等几个部分,需要算出各个部分的矩形顶点,以便控制曲线的绘制。

CDC pDC = GetDC();

pDC->MoveTo(100,100);// 线的起点

pDC->LineTo(200,200);// 线的终点

ReleaseDC(pDC);

在MFC中的对话框应用程序中,你指定的消息中,加入上面的代码,可以绘制一条点100,100到200,200的直线

如果是在WM_PAINT消息中,则使用

CPaintDC dc(this);

pDCMoveTo(100,100);// 线的起点

pDCLineTo(200,200);// 线的终点

想要在MFC中绘图,就要去学习GDI或者是GDIPlus都行

你已经做好了大部分的工作了,只差在控件上显示了。只需要再加句UpData(FALSE)就可以了。

备注:UpData(true);把控件内容装入控件变量即是说:当用户对控件作了 *** 作,控件内容发生了改变,可以通过该函数加true参数实现同步。

UpData(false);用控件变量的值更新控件。即是说:当程序中变量由于执行流程而发生了改变,需要在控件上体现出来,可以用该函数加false参数实现同步。

UpData();用来刷新当前对话框

不需要这样。

在子对话框 初始化时,在保留的绘图的位置,创建一个 子窗口。

在子窗口的OnPaint事件中完成图形绘制。

具体实现可再交流。

以上就是关于怎样在VS2013/MFC中使用TeeChart绘图控件全部的内容,包括:怎样在VS2013/MFC中使用TeeChart绘图控件、如何在MFC中利用OpenGL实现三维图形的绘制、怎么在mfc中画曲线等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/10219760.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-06
下一篇 2023-05-06

发表评论

登录后才能评论

评论列表(0条)

保存