Teechart + activeX + Vertical Scroll

时间:2013-04-17 08:47:04

标签: activex teechart

我正在尝试将滚动工具添加到我的图表但不能这样做。以下是代码

{
m_chart1.ClearChart();
m_chart1.GetPage().SetMaxPointsPerPage(5);  
wchar_t tmp[30]={0};
wchar_t t[10] = L"T%d";
int i = 0;
m_chart1.AddSeries(1);
wsprintf(tmp,t,i);
m_chart1.Series(i).SetColor(RGB(rand(),rand(),rand()));
m_chart1.Series(i).SetLegendTitle(tmp);  
m_chart1.Series(i).FillSampleValues(100);
m_chart1.Series(i).GetMarks().SetVisible(false);
m_chartNavigation.SetChartLink(m_chart1.GetChartLink());
m_chart1.GetAspect().SetView3D(false);
m_chart1.GetTools().Add(22);
_variant_t vardata;
VariantInit (&vardata);
vardata.vt = VT_BYREF;
vardata.byref = &m_chart1.GetAxis().GetBottom();
m_chart1.GetTools().GetItems(0).GetAsAxisScroll().SetAxis(vardata);
m_chart1.GetTools().GetItems(0).SetActive(true);
}

代码编译正确但箭头未显示在轴上。 谢谢 阿克沙伊

2 个答案:

答案 0 :(得分:2)

  

代码编译正确但箭头未显示在轴上

我不确定代码中的m_chartNavigation是什么。是ChartPageNavigator吗? 请注意,此组件添加了与图表分开的导航栏。

如果要显示一些箭头来滚动图表,则应使用AxisArrow工具,而不是AxisScroll工具,即2,而不是22。

m_chart1.GetTools().Add(2);
m_chart1.GetTools().GetItems(0).GetAsAxisArrow().SetAxis(vardata);

答案 1 :(得分:0)

我修改了您的代码,因此AxisArrow工具以正确的方式工作,并允许您根据需要滚动轴。因此,请参阅下一个代码并考虑指示,因为您可以毫无问题地使用代码。

注意事项:

1.-检查项目中是否存在文件夹中的所有类。如果您没有所有类,则必须在安装TeeChartActivex的文件夹中从您找到的文件夹Uitilities \ New VC Classes中复制这些类。该文件夹类似于下一个 C:...... \ TeeChart Pro v2012 ActiveX Control \ Utilities \ New VC Classes

2.-在您的代码中使用下一个包含:

#include "stdafx.h"
#include "XXXXX.h"
#include "XXXXX.h"

#include "series.h"
#include "axes.h"
#include "axis.h"
#include "TeeChartDefines.h"
#include "aspect.h"
#include "zoom.h"
#include "scroll.h"
#include "environment.h"
#include "marks.h"
#include "page.h"
#include "lineseries.h"
#include "axisarrowtool.h"
#include "toollist.h"
#include "tools.h"
#include "comutil.h"
#include "afxdisp.h"

3.-代码已在项目的OnInitDialog()上创建。

代码:

您能否告诉我们下一段代码是否适用于您?

{
.
.
.
// TODO: Add extra initialization here
    m_tChart1.ClearChart();
    long index = m_tChart1.AddSeries(scLine);
    m_tChart1.GetAspect().SetView3D(false);
    m_tChart1.GetPage().SetMaxPointsPerPage(5);
    m_tChart1.Series(index).SetColor(RGB(rand(),rand(),rand()));
    m_tChart1.Series(index).SetLegendTitle("Hello");  
    m_tChart1.Series(index).FillSampleValues(100);
    m_tChart1.Series(index).GetMarks().SetVisible(false);
    long index1 = m_tChart1.GetTools().Add(tcAxisArrow); 
    //SetAxisArrow Tool to do scroll.
    m_tChart1.GetTools().GetItems(index1).GetAsAxisArrow().SetAxis(COleVariant(short(atBottom))); 
 // TODO: Add extra initialization here
    return TRUE;  // return TRUE  unless you set the focus to a control
}

我希望能有所帮助。

谢谢, 桑德拉。