TeeChart 游标功能实现,仿示波器游标

使用TeeChart v8实现一个游标功能,查资料的时候在网上看到一个帖子,自己尝试了一下,但是遇到很多问题,无法完全实现,于是自己尝试了一个下,最后实现了一个简单的功能。实现环境是TeeChart V8& VS2010;参考了https://www.cnblogs.com/hyd10000/archive/2011/07/10/2102072.html。在OnInitDailog()里面添加如下代码:

    m_cTeeChart.GetAspect().SetView3D(FALSE);
	m_cTeeChart.AddSeries(0);
	m_cTeeChart.GetTools().Add(0);//添加cursor
	m_cTeeChart.GetTools().Add(0);
	m_cTeeChart.Series(0).FillSampleValues(20);
	CToolList toollist;
	CTools tool;
	toollist = m_cTeeChart.GetTools();//获取工具链
	tool = toollist.GetItems(0);//获取工具链中的第一个工具。这里是我添加的是跟随鼠标的十字光标线
	curtool1 = (CCursorTool)tool.GetAsTeeCursor();
	curtool1.SetFollowMouse(FALSE);
	curtool1.GetPen().SetColor(RGB(0,0,255));
	curtool1.GetPen().SetWidth(2);
	tool = toollist.GetItems(1);
	curtool2 = (CCursorTool)tool.GetAsTeeCursor();
	curtool2.SetFollowMouse(FALSE);
	curtool2.GetPen().SetColor(RGB(255,0,0));
	curtool2.GetPen().SetWidth(2);

在头文件中定义:

    CCursorTool curtool1;
    CCursorTool curtool2; 

并为TeeChart控件添加事件:

void CTeeChartMDlg::OnCursorToolChangeTchart1(long Tool, long X, long Y, double XVal, double YVal, long Series, long ValueIndex)
{
	// TODO: 在此处添加消息处理程序代码
	double x1 = curtool1.GetXVal();
	double x2 = curtool2.GetXVal();
	double dx = abs(x1-x2);
	CString str;
	str.Format(_T("%.2f"),dx);
	GetDlgItem(IDC_EDITDX)->SetWindowTextW(str);
	double y1 = curtool1.GetYVal();
	double y2 = curtool2.GetYVal();
	double dy = abs(y1 - y2);
	str.Format(_T("%.2f"),dy);
	GetDlgItem(IDC_EDITDX2)->SetWindowTextW(str);
}

https://download.csdn.net/download/Jerry_81/13457874

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值