在线系列Teechart中重置标记

时间:2015-03-03 11:25:10

标签: teechart

我在Line系列中添加了Marks,但是当我们在相同的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.

谢谢, PRABHAT。

1 个答案:

答案 0 :(得分:1)

TeeChart展示了Marks" 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.

我知道您要修改Label,而不是添加新点。 在这种情况下,您需要知道的第一件事是要修改标签的点的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. 

然后,一旦你有index点进行修改,你就可以使用它了:

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