MSCHART, круговая
От: rusel1979  
Дата: 13.01.10 06:33
Оценка:
Может кто знает каким образом заполнять данными MSCHART в случае построения круговой диаграммы
в C++

В случае линейного графика использую следующее

m_Chart.SetChartType(3);
m_Chart.SetShowLegend(TRUE);

DWORD numElements[] = {13,1};
saRet.Create(VT_R8, 2, numElements);

long index[2] = {0,0};

index[0]=0;
index[1]=0;
for(l=1;l<14;l++)
{
iN1 = l;
saRet.PutElement(index, &iN1);
index[0]++;
}
m_Chart.SetChartData(saRet);

m_Chart.SetRow(1); m_Chart.SetRowLabel("1");
.....
m_Chart.SetRow(13); m_Chart.SetRowLabel("13");

для круговой использую
m_Chart.SetChartType(14);
остально так же, в итоге
рисуется каждое значения в отдельном круге,
а не все в одном
Re: MSCHART, круговая
От: Аноним  
Дата: 20.01.10 14:07
Оценка:
Здравствуйте, rusel1979, Вы писали:

R>Может кто знает каким образом заполнять данными MSCHART в случае построения круговой диаграммы

R>в C++

R>В случае линейного графика использую следующее


R>m_Chart.SetChartType(3);

R>m_Chart.SetShowLegend(TRUE);

R>DWORD numElements[] = {13,1};

R>saRet.Create(VT_R8, 2, numElements);

R>long index[2] = {0,0};


R>index[0]=0;

R>index[1]=0;
R>for(l=1;l<14;l++)
R>{
R> iN1 = l;
R> saRet.PutElement(index, &iN1);
R> index[0]++;
R>}
R>m_Chart.SetChartData(saRet);

R>m_Chart.SetRow(1); m_Chart.SetRowLabel("1");

R>.....
R>m_Chart.SetRow(13); m_Chart.SetRowLabel("13");

R>для круговой использую

R>m_Chart.SetChartType(14);
R>остально так же, в итоге
R>рисуется каждое значения в отдельном круге,
R>а не все в одном

Кому интересно, описываю как решил проблему.
В моем случае я заполняю массив 13Х1, в случае круговой (и подозреваю во всех случаях)
нужно заполнять массив 1Х13
Re[2]: MSCHART, круговая
От: Аноним  
Дата: 06.02.10 16:40
Оценка:
все здесь неправильно.
Чтобы понять, нужно прочить SafeArray из chart
и посмотреть на него.
Проще всего пользоваться
CVcDataGrid grid = m_chart.GetDataGrid();
grid.SetData(row,col,data,0) и не заморачиваться с SafeArray.
Работает одинаково на всех типах.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.