0

我正在尝试将滚动工具添加到我的图表中,但无法做到这一点。下面是代码

{
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);
}

代码编译正确,但箭头未显示在 Axis 上。谢谢阿克谢

4

2 回答 2

2

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

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

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

m_chart1.GetTools().Add(2);
m_chart1.GetTools().GetItems(0).GetAsAxisArrow().SetAxis(vardata);
于 2013-04-17T11:33:40.393 回答
0

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

注意事项:

1.-检查文件夹中是否有项目时的所有类。如果您没有所有类,则必须从文件夹 Uitilities\New VC Classes 中复制它们,在您安装 TeeChartActivex 的文件夹中。该文件夹类似于下一个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
}

我希望会有所帮助。

谢谢,桑德拉。

于 2013-04-18T11:13:05.423 回答