代码之家  ›  专栏  ›  技术社区  ›  Rahul

重置线条系列T形图中的标记

  •  0
  • Rahul  · 技术社区  · 9 年前

    我在Line系列中添加了标记,但当我们在同一个x轴上添加标记时,它会同时显示以前添加的标记和新的标记。我只想展示最后一个。

    m_ctrlChart.AddSeries(scLine);

    m_ctrlChart.Series(0).AddNullXY(0, 5, "");
    m_ctrlChart.Series(0).AddXY(22, 5, "C", 0); // Here we have added 'C' on 22. 
    m_ctrlChart.Series(0).AddXY(22, 5, "SMP", 0); // Again we have added SMP on 22.
    m_ctrlChart.Series(0).AddXY(40, 5, "G", 0);
    m_ctrlChart.Series(0).SetTitle(LPCTSTR("Line Series 0"));
    CSeriesPointerItems pointerit =        m_ctrlChart.Series(0).GetAsLine().GetPointer();
    pointerit.SetVisible(TRUE);
    pointerit.SetStyle(psStar);
    pointerit.GetBrush().SetStyle(bsClear); 
    

    但我们希望在22 x轴上显示“SMP”,并希望从该位置清除C。

    谢谢 普拉巴特。

    1 回复  |  直到 9 年前
        1
  •  1
  •   Yeray    9 年前

    TeeChart显示了标记“C”和“SMP”,因为您添加了两个相同的点 XValue 在这里:

    m_ctrlChart.Series(0).AddXY(22, 5, "C", 0); // Here we have added 'C' on 22. 
    m_ctrlChart.Series(0).AddXY(22, 5, "SMP", 0); // Again we have added SMP on 22.
    

    我理解您希望修改标签,而不是添加新点。 在这种情况下,你首先需要知道的是 index 要修改标签的点的。在您发布的代码中,两个调用都是连续的,因此,要修改的点是此时系列中的最后一个:

    index = m_ctrlChart.Series(0).getCount()-1;
    

    或者,可以使用AddXY()调用给出的返回值。即:

    index = m_ctrlChart.Series(0).AddXY(22, 5, "C", 0); // Here we have added 'C' on 22. 
    

    然后,一旦你有了 指数 对于要修改的点,您可以使用它:

    m_ctrlChart.Series(0).SetPointLabel(index, "SMP");