我正在尝试将滚动工具添加到我的图表但不能这样做。以下是代码
{
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);
}
代码编译正确但箭头未显示在轴上。 谢谢 阿克沙伊
答案 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
}
我希望能有所帮助。
谢谢, 桑德拉。