运用TeeChart的时候,添加光标工具时,或者说,很多时候在属性窗口调整了teechart的一些属性,都不能再直接编译后得到体现,这对初学者来说是很郁闷的,有时候都不知道是自己的问题还是teechart的问题。
这里,我遇到这个问题很多次,终于发现了问题的所在。我用的原来是teechart V8,由于遇到上面的问题,无法解决,所以改用了teechart2010,但是问题一样,不过我经过乱七八糟的试,一不小心给解决了。主要的解决办法是再向对话框添加一个teechart控件,即如果原来只有一个teechart控件,那么可以在更改了属性以后再给对话框添加一个控件,然后编译,然后删除掉那个没有的teechart,再次编译,这样的话就可以解决了,如果还不行,就多这样循环几次。
下面介绍一下cursortool的使用方法。首先添加几个头文件:
#include
"
axes.h
"
#include " axis.h "
#include " series.h "
#include " cursortool.h "
#include " toollist.h "
#include " tools.h "
#include " axis.h "
#include " series.h "
#include " cursortool.h "
#include " toollist.h "
#include " tools.h "
在OnInitDialog()中使用如下代码
CToolList toollist;
CTools tool;
toollist = m_chart1.GetTools();//获取工具链
tool = toollist.GetItems( 0 );//获取工具链中的第一个工具。这里是我添加的是跟随鼠标的十字光标线
curtool = (CCursorTool)tool.GetAsTeeCursor();
tool = toollist.GetItems( 1 );//获取工具链中的第二个工具
tool.SetActive(FALSE);//不激活该工具,使其不能显示,可以在需要的时候显示它、
curtool1 = (CCursorTool)tool.GetAsTeeCursor();
tool = toollist.GetItems( 2 );
tool.SetActive(FALSE);
curtool2 = (CCursorTool)tool.GetAsTeeCursor();
CTools tool;
toollist = m_chart1.GetTools();//获取工具链
tool = toollist.GetItems( 0 );//获取工具链中的第一个工具。这里是我添加的是跟随鼠标的十字光标线
curtool = (CCursorTool)tool.GetAsTeeCursor();
tool = toollist.GetItems( 1 );//获取工具链中的第二个工具
tool.SetActive(FALSE);//不激活该工具,使其不能显示,可以在需要的时候显示它、
curtool1 = (CCursorTool)tool.GetAsTeeCursor();
tool = toollist.GetItems( 2 );
tool.SetActive(FALSE);
curtool2 = (CCursorTool)tool.GetAsTeeCursor();
以上是该工具的一些使用方法,最后我得到的效果是这样的:
这里,红色虚线是跟随鼠标的光标,红色实现是可拖拽的光标,右侧显示的就是x轴和y轴上的差值,以及鼠标所在点的坐标值。