Как найти верхний / левый и верхний / правый график Teechart и холст Teechart?

Я пытаюсь выяснить управление Teechart и график холста всех четырех углов в клиентской координате.

Кто-нибудь знает API Teechart, который возвращает координаты холста для всех четырех углов?

Спасибо

1

Решение

Чтобы определить положение графика в форме окна, вы можете использовать .Left а также .Top Свойства диаграммы. Таким же образом, вы можете получить TChart Углы с помощью ChartRect, Пожалуйста, посмотрите на код ниже:

// CDraggingDlg message handlers

BOOL CDraggingDlg::OnInitDialog()
{
….
CDialog::OnInitDialog();
// Extra initialization
m_ctrlChart.RemoveAllSeries();

m_ctrlChart.GetAspect().SetView3D(false);
m_ctrlChart.AddSeries(scLine);
m_ctrlChart.Series(0).FillSampleValues(100);
return TRUE;
}

std::string text;

void CDraggingDlg::OnAfterDrawTChart()
{

// Draw a white circle around the clicked pyramid...

CTeeRect r = m_ctrlChart.GetGetChartRect();
long recwidth, recheight, posLeft, posTop;

int BottomLCornerX,BottomLCornerY, BottomRCornerX, BottomRCornerY, TopLCornerX, TopLCornerY, TopRCornerX, TopRCornerY;
std::string s1, s2, s3;

//Get Width
recwidth = (r.GetRight()- r.GetLeft());
recheight = (r.GetBottom()-r.GetTop());

//GetPosition
posLeft =   m_ctrlChart.GetLeft();
posTop = m_ctrlChart.GetTop();

//CalculateCorners
BottomLCornerX = r.GetLeft();
BottomLCornerY = r.GetBottom();
BottomRCornerX = r.GetRight();
BottomRCornerY = r.GetBottom();
TopLCornerX = r.GetLeft();
TopLCornerY = r.GetTop();
TopRCornerX = r.GetRight;
TopRCornerY = r.GetTop();
//Visualization Values
s1 = "Position Chart :" + std::to_string(posLeft) + "," + std::to_string(posTop);
s2 = "Chart Rect Positons: Left " + std::to_string(r.GetLeft()) + " Top " + std::to_string(r.GetTop()) + " Right " + std::to_string(r.GetRight()) + " Bottom " + std::to_string(r.GetBottom());
s3 = "Chart Rect Corners: BottomLeft  " + std::to_string(BottomLCornerX) + "," + std::to_string(BottomLCornerY) + " BottomRight " + std::to_string(BottomRCornerX) + "," +
std::to_string(BottomRCornerY) + "\n TopLeft  " + std::to_string(TopLCornerX) + "," + std::to_string(TopLCornerY) + " TopRight " + std::to_string(TopRCornerX) + "," + std::to_string(TopRCornerY);
text = s1 + "\n" + s2 +"\n"+s3 ;
}
void CDraggingDlg::OnButton1()
{MessageBox(text.c_str()); }
3

Другие решения


По вопросам рекламы [email protected]