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

コードは正しくコンパイルされますが、軸に矢印が表示されません。ありがとうございます

4

2 に答える 2

2

コードは正しくコンパイルされますが、軸に矢印が表示されません

m_chartNavigationあなたのコードの内容がわかりません。それはChartPageNavigatorですか?このコンポーネントは、グラフとは別のナビゲーション バーを追加することに注意してください。

チャートをスクロールするためにいくつかの矢印を表示したい場合は、AxisScroll ツールではなく AxisArrow ツールを使用する必要があります。つまり、22 ではなく 2 です。

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

コードを修正したので、AxisArrow ツールは正しく機能し、必要に応じて軸をスクロールできます。そのため、コードは問題なく使用できますので、次のコードを参照して指示を考慮してください。

考慮事項:

1.-プロジェクトがあるため、フォルダーにすべてのクラスがあるかどうかを確認します。すべてのクラスがない場合は、TeeChartActivex をインストールしたフォルダーにあるフォルダー Uutilities\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
}

役立つことを願っています。

ありがとう、サンドラ。

于 2013-04-18T11:13:05.423 に答える