工具/原料
Visual studio 2013
TeeChart.pro.v5.ActiveX
方法/步骤
1在网上下载TeeChart控件并安装,安装自然不用多说,安装完后找到安装路径(带有TeeChart5.ocx文件),复制当前路径
2安装完后需要对控件进行简单的注册,打开cmd,通过cd指令并粘贴原来复制好的路径,转到软件安装好的目录;
接着输入:regsvr32 TeeChart5.ocx,然后d出对话框提示注册成功
3注册完毕,打开VS2013,新建一个MFC项目,在VC++栏中找到MFC项目,选择好项目存放的目录并填写项目名称
4接着是创建向导,只需修改选择“基于对话框”模式,至于“最小化框”和“最大化框”随各自情况选择,其余的默认点“下一步”即可
5将默认生成的三个控件按delete键删除
6接下来导入TeeChart控件,选择“工具"-》"选择工具箱项"-》"COM组件",找到"TeeChart Pro Active control v5"并选中它,点击"确定"
7在工具箱中找到“TeeChart Pro Active control v5”控件并拖放到对话框上,适当调整控件大小
8控件已经导入了,接下来需要添加相关的“类”和“变量”,首先添加类。
在“类视图”中右键项目名称,选择“添加”-》“类”;
然后选择“MFC”项中的“TypeLib中的MFC类”,点“添加”。
9在注册表的可用类型库中找到"TeeChart Pro Active control v5<1.0>",这里不需要一直下拉慢慢找,只要输入"tee"就可以直接选中
10在“接口”中选择所需的类,Teechart控件包含很多类,CTChart是必须的,对应的接口是“ITChart”,其他类包括CSeries、CAxis、CAxes、CTitles等等,这里仅以“CTChart”和“CSeries”为例,选择“ISeries”、“ITChart”。
确定以后可以在类视图中看到新添加的两个类。
11接下来需要对控件关联变量,对控件右键选择“添加变量”,选择默认的控件类型,属于类“CTchart1”,对变量进行命名,这里命名为"m_chart",这样类和变量就关联好了。
12项目中会多出一个tchart1.h文件和tchart1.cpp文件,在对话框类的头文件CTestDlg.h中会有“CTchart1 m_chart”的变量定义,但是CTestDlg.cpp文件中对话框类的构造函数会多出一句“, m_chart(0)”,需要把它删除,否则会编译出错。这样前期准备工作就完成了
控件绘图示例-绘制随机曲线
1双击对话框中添加的Teechart控件,d出对话框,选择“Add”添加图表,在d出的对话框中可以看到很多图表类型,这里选择最简单的“Fast line”,并取消“3D”,选择“Fast line”下选的“normal”系列,其它选项暂不多说,点击“完成”会生成series0
2添加一个按钮,修改属性“Caption”和“ID”
3双击按钮自动生成按钮点击事件处理函数,编辑函数,注意添加CSeries.h头文件,用AddXY函数进行绘图,第一个参数表示横坐标,第二个表示纵坐标,和面两个默认NULL就行。
void CTestDlg::OnBnClickedDraw()
{
// TODO: 在此添加控件通知处理程序代码
CSeries lineSeries = (CSeries)m_chart.Series(0)
lineSeries.Clear()
for (int i = 0i <100i++)
{
lineSeries.AddXY((double)i, rand(),NULL,NULL)
}
}
4这样,一个简单的Teechart应用程序就完成了。Teechart功能很是强大,也很方便,许多功能可以双击后进行设置,希望对大家有所帮助。
注意事项
添加完变量后别忘了把构造函数里的初始化赋值语句去掉,防止编译失败
注意添加头文件,因为除CTchart类以外,其他类都需要手动导入
重新绘图前别忘了用Clear函数清除一下
用 TeeChart 画二维成像图 这儿说的二维图,指的是类似 Matlab 的 imagesc 这种命令画出来的图像,用颜 色来表示数据的大小或者说强弱。简单地说,就是一个二维数组,里面存放的数 据用颜色来表示。做雷达 SAR 图像、ISAR 图像经常要用这个来显示。对比了多 款图表,最后总结出 TeeChart 可以完成这个功能。 附 TeeChart 下载 我用的是 Series 中的 3D->Colorgrid 步骤: (1)在 VC 界面上添加了 Teechart 控件之后,手动添加 Series,它会自动命名 为 Series0、Series1。多个 Series,会依次从上往下排列。 注意:这个名字中的 0/1 跟排名没有关系,即你可以吧 Series1 移到 Series0 之前。最终代码中的 m_tchart.Series(0),这个 0 指的是在 Series 列表中第一 项! 而并不一定是名字叫做 Series0 的那项! ! 类似地, m_tchart.Series(1) 指 的是排名第二的那个曲线,跟名字无关。 (2) 添加这个 Series, 选择的类型是 3D->Colorgrid。 添加完毕后出现在 Series 列表里头,双击可以编辑一些属性。例如 Grid 3D->Range,可以选择你想要的 用来表示数值大小的颜色类型(Start,middle,end)。 (3)可以根据需要编辑 tchart 的显示属性,在此不详述。 (4)添加代码: COleSafeArray XX//color grid 的横坐标 COleSafeArray ZZ//color grid 的纵坐标,与我们常用的 Y 一样 COleSafeArray YY// 表示的是颜色的值,不是 Y 轴 DWORD numElements[] = {180001}XX.Create(VT_I4, 1, numElements)YY.Create(VT_R8, 1, numElements)ZZ.Create(VT_I4, 1, numElements)longxIndexlongzIndexlongi=0for (xIndex=0xIndex<90xIndex++) 慧都提供 TeeChart 系列免费教程 慧都提供 TeeChart 系列免费教程 { for (zIndex=0zIndex<2000zIndex++) { double val =zIndex*xIndex//二维数组对应的值 YY.PutElement(&i,&val)XX.PutElement(&i,&xIndex)ZZ.PutElement(&i,&zIndex)i++} } m_tchart.Series(0).GetAsColorGrid().AddArrayXYZ(XX,YY, ZZ)(5)上面这段代码的一些说明: 首先,因为 Series(0)已经被我们在设计阶段就手动添加了,所以没有必要在代 码中加上 m_tchart.AddSeries(0)其次,上面说了,这个 m_tchart.Series(0)里面的 0 跟 Seriesx 名字中的 0 或 者 1 无关,这儿的 0 表示你在列表中的第一项。 再次,m_tchart.Series(0).GetAsColorGrid()表示这个 Series 类型是 ColorGrid,如果我们改用 m_tchart.Series(0).GetAsPolarGrid(),程序运行 时会报错。因为我们在设计阶段添加的 Series 类型是 ColorGrid,而不是 PolarGrid。 最后,因为使用了 GetAsColorGrid,需要在头文件中包含: #include ".\teechart\PolarGridSeries.h" .\teechart\是我自己存放的目录名字,根据你自己的路径修改。还是那句话, 如果在编译的时候报错信息是使用了未声明的类,即把对应的类的.h 文件包含 进来即可。用.点不出提示,和连写报错是两回事。
你先将分开写没问题的语句连着写,看看报错提示是什么,在看看鼠标放到函数上,提示的返值类型是什么吧。
另外,尝试一下这种写法:
((CSeries)m_TeeChart.Series(i)).put_Color(RGB(255,0,0))欢迎分享,转载请注明来源:内存溢出
评论列表(0条)