TeeChart ÏÂÔØ±¾ÎÄ

2.2 AddArrayº¯Êý-ÕæÕýʵÏÖ¿ìËÙ»­Í¼º¯Êý

ΪÁËÑéÖ¤AddArrayµÄ¿ìËÙÐÔ£¬ Ìí¼ÓÁËÒ»¸ö°´Å¥£º

°´Å¥ÒÀȻʵÏÖ»­Í¼£¬²»¹ýÊÇÓÃAddArrayº¯Êý ÀûÓÃCOleSafeArrayʵÏÖÊý¾Ý´æ´¢ ʵÏÖ´úÂëÈçÏ£º

void CTeeChartDlg::OnBnClickedButtondraw2() {

CSeriesChartSpeed = (CSeries)m_Chart.Series(0); UpdateData(TRUE); if (m_nPointNum<=0) {

MessageBox(_T(\Êý¾ÝµãÊý²»ÄÜСÓÚ0\)); return;

}

DWORD dwTimeS,dwTimeE; CString str(_T(\)); long i(0); double val;

COleSafeArrayXValues; COleSafeArrayYValues;

DWORD pNumElements[] = {m_nPointNum}; XValues.Create(VT_R8, 1, pNumElements); YValues.Create(VT_R8, 1, pNumElements); for(i=0; i

XValues.PutElement(&i, &val); val = randf(-20,20);

YValues.PutElement(&i, &val); };

//ÓÉÓÚÐèÒª¼ÆËãʱ¼ä£¬»­Í¼¾Í²»ÔÚµÚÒ»¸öforÑ­»·ÀïʵÏÖÁË dwTimeS = GetTickCount(); ChartSpeed.Clear();

ChartSpeed.AddArray(m_nPointNum,YValues,XValues); dwTimeE = GetTickCount(); dwTimeE -= dwTimeS;

str.Format(_T(\ºÄʱ£º%d ms\),dwTimeE); SetDlgItemText(IDC_STATIC_T,str); }

Ч¹ûÈçºÎ£¿ ¿´Í¼

¿ì30±¶£¬1638400¸öµã˲¼äÍê³É

Ò»°ãÎÒÃǵÄÊý¾Ý¾­³£ÊÇÓÃdoubleÊý×é±£´æµÄ£¬ºÜÉÙÓÃCOleSafeArrayËùÒÔ£¬ÎªÁË·½±ã£¬¿ÉÒÔдһ¸öº¯Êý·½±ã»­Í¼ ÈçÏ£º

void DrawLine(double* pX,double* pY,long nNum) {

COleSafeArrayXValues; COleSafeArrayYValues; long i(0);

DWORD wLength = nNum;

XValues.Create(VT_R8, 1, &wLength); YValues.Create(VT_R8, 1, &wLength);

for(i=0; i

XValues.PutElement(&i, pX+i);

YValues.PutElement(&i, pY+i); }

CSeries Chart = (CSeries)m_Chart.Series(0); Chart.Clear();

Chart.AddArray(nNum,YValues,XValues); }

µ÷ÓÃʱֻҪ°ÑÊý×éµÄÊ×µØÖ·ºÍ³¤¶È´«½øÈ¥¾ÍÐÐÁË¡£

1. 1 Ìí¼ÓTeeChart¿Ø¼þ£¬¸ø¿Ø¼þÌí¼Ó±äÁ¿m_TeeChart

Ìí¼ÓTeeChart¿Ø¼þ£¬ÓÒ»÷¿Ø¼þ£¬Ñ¡ÔñÌí¼Ó±äÁ¿£¬vs»á×Ô¶¯¸øÎÒÃÇÒýÈëCTchart1Õâ¸öÀ࣬µ«ÊÇÖ»ÓÐÕâ¸öÀ࣬ÎÒÃÇÊÇÔ¶Ô¶²»¹»µÄ£¬ÐèÒªÌí¼ÓteechartÆäËûÏà¹ØµÄÀ࣬Ìí¼Ó·½·¨ÔÚ֮ǰÒѾ­½²¹ý£¬²»ÔÙÖØ¸´¡£

1.2. ÒýÈë±ØÒªµÄÍ·Îļþ