MFC high-speed-charting控件使用(添加垂直游标,两个控件的联动)

MFC high-speed-charting控件使用(添加垂直游标,两个控件的联动)

应用场景

最近参与的一个项目中涉及到在一个对话框中添加两个high-speed-charting控件,在两个控件中添加dragline游标,并要求:

  1. 光标不可越过其左右游标且不能拖到控件外;
  2. 拖动其中一个控件中的dragline游标时,另一个控件中对应游标也移动。

控件的基础使用

参考了大神尘中远的博客TeeChart替代品,MFC下好用的高速绘图控件-(Hight-Speed Charting),详细讲述了如何添加控件,并在控件中添加坐标轴和画线。
画好线的控件

Hight-Speed Charting自带对chart的缩放,左键拖动控制缩放,右键拖动chart,但由于添加dragline游标后也需要左键拖动,有冲突,所以本文中禁用了其缩放(调用yourChartCtrlName.SetZoomEnabled(false);),当然,也可以尝试将缩放移到鼠标滚轮,但由于本人对此部分不太熟悉,希望能有人加以改进


添加游标前的准备工作

1.添加所需的函数,变量
(1)ChartDragLineCursor.h中声明函数及变量

public:
	CChartCtrl* GetParent();
	void SetPosition(double dPosition);
	void SetWidth(int NewWidth)
	double GetValuePosition()
	bool GetDragged();

	double minx,maxx;
private:
	long last_lPosition;
	int m_iLineWidth;

(2)以下代码为ChartDragLineCursor.cpp中几个函数的实现(要先在.h文件的类中声明该函数)

	CChartCtrl* CChartDragLineCursor::GetParent() 
	{ 
		return m_pParentCtrl; 
	}
	
	void CChartDragLineCursor::SetPosition(double dPosition)
	{
		m_lPosition = m_pRelatedAxis->ValueToScreen(dPosition);
	}
	
	void CChartDragLineCursor::SetWidth(int NewWidth) 
	{
		m_iLineWidth = NewWidth;
		
  • 0
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值