2015-03-03 62 views
0

我在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轴上显示'SMP',并且想从该位置清除C.

谢谢, Prabhat。

回答

1

的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. 

然后,一旦你有一点的index修改,您就可以使用它:

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