这是小弟的一个ondraw函数,其中CGraphSeries和CGraph都是关于直方图的类,小弟是实现用直方图来动态显示数据,但是当有了中间的一段代码(程序中已标出)后程序不能正常运行。望各位指导指导。
CGraphSeries* series1 = new CGraphSeries();
CGraphSeries* series2 = new CGraphSeries();
CGraphSeries* series3 = new CGraphSeries();
series1->SetLabel("量程为10立方米");
series2->SetLabel("量程为20立方米");
series3->SetLabel("量程为0到200摄食度");
CHellhome002Doc* pDoc=GetDocument();//chsdata是一个folat的数组 用 于储存要动态显示的数据。
series1->SetData(0, (int)(pDoc->chsdata[0]/24));//从这里开始
series1->SetData(1, (int)(pDoc->chsdata[1]/24));
series1->SetData(2, (int)(pDoc->chsdata[2]/24));
series2->SetData(0, (int)(pDoc->chsdata[3]/9));
series2->SetData(1, (int)(pDoc->chsdata[4]/9));
series2->SetData(2, (int)(pDoc->chsdata[5]/9));
series3->SetData(0, (int)(pDoc->chsdata[6]/1.28));
series3->SetData(1, (int)(pDoc->chsdata[7]/1.28));
series3->SetData(2, (int)(pDoc->chsdata[8]/1.28));//到这里截止
fangGraph->AddSeries(series1);
fangGraph->AddSeries(series2);
fangGraph->AddSeries(series3); //set the colors of my bars
fangGraph->SetColor(0, FOREST_GREEN);
fangGraph->SetColor(1, SKY_BLUE);
fangGraph->SetColor(2, DUSK); //set up legend
if(graphComplete)
fangGraph->DrawGraph(pDC);
UpdateWindow();其中SetData函数是用于设置直方图的数值。
CGraphSeries* series1 = new CGraphSeries();
CGraphSeries* series2 = new CGraphSeries();
CGraphSeries* series3 = new CGraphSeries();
series1->SetLabel("量程为10立方米");
series2->SetLabel("量程为20立方米");
series3->SetLabel("量程为0到200摄食度");
CHellhome002Doc* pDoc=GetDocument();//chsdata是一个folat的数组 用 于储存要动态显示的数据。
series1->SetData(0, (int)(pDoc->chsdata[0]/24));//从这里开始
series1->SetData(1, (int)(pDoc->chsdata[1]/24));
series1->SetData(2, (int)(pDoc->chsdata[2]/24));
series2->SetData(0, (int)(pDoc->chsdata[3]/9));
series2->SetData(1, (int)(pDoc->chsdata[4]/9));
series2->SetData(2, (int)(pDoc->chsdata[5]/9));
series3->SetData(0, (int)(pDoc->chsdata[6]/1.28));
series3->SetData(1, (int)(pDoc->chsdata[7]/1.28));
series3->SetData(2, (int)(pDoc->chsdata[8]/1.28));//到这里截止
fangGraph->AddSeries(series1);
fangGraph->AddSeries(series2);
fangGraph->AddSeries(series3); //set the colors of my bars
fangGraph->SetColor(0, FOREST_GREEN);
fangGraph->SetColor(1, SKY_BLUE);
fangGraph->SetColor(2, DUSK); //set up legend
if(graphComplete)
fangGraph->DrawGraph(pDC);
UpdateWindow();其中SetData函数是用于设置直方图的数值。
这句语句就有问题,chsdata是float型数据,而运算符“/”是取整运算,这样pDoc->chsdata[0]/24就会得到0,前面加(int)也没用。
你可以把chsdata放大以后再进行类似运算。
To autoegg(dandan) :
----------------------------->
"series1->SetData(0, (int)(pDoc->chsdata[0]/24));
这句语句就有问题,chsdata是float型数据,而运算符“/”是取整运算,这样pDoc->chsdata[0]/24就会得到0 ?"
I don't agree !