日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

MFC下绘制曲线工具Teechart使用

發(fā)布時間:2025/3/12 编程问答 42 豆豆
生活随笔 收集整理的這篇文章主要介紹了 MFC下绘制曲线工具Teechart使用 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

Teechart版本為TeeChart.Pro.v5.ActiveX

一、簡單應(yīng)用:

1.????安裝完畢之后,給工程添加一個類,選擇來自Typelib的MFC 類,選擇TeeChart ActiveX Control V5和下面的ISereis。

2.????在工具箱中添加選項卡,然后右鍵添加項,選擇TeeChart pro control V5。

3.????在界面編輯上托進去一個新建的工具。雙擊控件,add一個Series。

4. 右擊控件,添加一個變量。在主界面的.cpp里添加#include“CSeries”,并書寫畫曲線代碼

CSeries mycs = (CSeries)m_Chart_RCS.Series(0);

for (int i = 0; i < 100; i++)

mycs.AddNullXY(i,2*i+10, NULL);

二、TeeChartY軸分段顯示

1.??????在MFC資源編輯界面中增加一個Teechart控件,添加兩條Series,均為line。并在Axis頁下添加一個Custom 0.此處實際上已經(jīng)添加了一個坐標(biāo)軸對象,可以在程序中直接調(diào)用。其原理類似于Series。


2.??????給工程添加兩個類CAxis和CAxes。添加類的方法同添加CSeries。

3.??????思路即為對上圖中的Left和Custom進行屬性編輯。包括坐標(biāo)的最大最小值,以及在Y軸上的起止位置,注意起止位置是按照百分比計算的。須特別注意曲線Series須與坐標(biāo)軸綁定,put_VerticalAxisCustom(0)函數(shù)實現(xiàn)將數(shù)據(jù)綁定在Custom 0上。這樣才可以顯示曲線。(如果將對應(yīng)的坐標(biāo)軸Custom設(shè)置為disvisible,則曲線也會消失,道理很簡單,沒有坐標(biāo)軸哪來的曲線)代碼如下:

//第一個坐標(biāo)空間

?????? CSeries mycs0 =(CSeries)m_chart_RDE.Series(0);//提取出控件中的Series0

?????? CAxes coord = (CAxes)m_chart_RDE.get_Axis();//提取出控件中的坐標(biāo)軸

?????? CAxis left0 = (CAxis)coord.get_Left();//提取出坐標(biāo)軸中的Left Axis

?????? left0.put_Automatic(FALSE);//對Left Axis的相關(guān)設(shè)置:自動大小關(guān)閉

?????? left0.put_Minimum(0);//最小值

?????? left0.put_Maximum(30);//最大值

?????? left0.put_Increment(0);//增量

?????? left0.put_StartPosition(0);//最小值開始的位置,百分比

?????? left0.put_EndPosition(50);//最大值結(jié)束的位置,百分比

?????? left0.put_PositionPercent(0);//在X軸上的偏移量

?????? for (int i = 0; i <25; i++)

?????????? mycs0.AddXY(i,i, NULL,RGB(255,0,0));

?

?????? //第二個坐標(biāo)空間

?????? CSeries mycs1 =(CSeries)m_chart_RDE.Series(1);

?????? mycs1.put_VerticalAxisCustom(0);//將數(shù)據(jù)綁定在custom0

?????? CAxes coord1 =(CAxes)m_chart_RDE.get_Axis();

?????? CAxis left1 = (CAxis)coord1.get_Custom(0);//須在控件中添加一個Custom

?????? left1.put_Automatic(FALSE);

?????? left1.put_Minimum(0);

?????? left1.put_Maximum(30);

?????? left1.put_Increment(0);

?????? left1.put_StartPosition(55);

?????? left1.put_EndPosition(100);

?????? for (int i = 0; i <25; i++)

?????????? mycs1. AddXY( i, i, NULL, RGB(0,255,0));

效果圖:


三、Teechart實時曲線繪制顯示

1.MFC下添加定時器的方法:即添加OnTimer消息。定義afx_msg void OnTimer(UINT_PTR nIDEvent);以及ON_WM_TIMER。啟動定時器用SetTimer:

??????

UINT_PTR SetTimer(
????????????UINT_PTR nIDEvent,
???????????? UINTnElapse,
??????????? ?void(CALLBACK* lpfnTimer
?????? )(HWND,
????????? UINT,
???????? ?UINT_PTR,
??????????DWORD
?????? )
????? ?);

?????? 參數(shù)nIDEvent指定一個非零的定時器ID;參數(shù)nElapse指定間隔時間,單位為毫秒;參數(shù)lpfnTimer指定一個回調(diào)函數(shù)的地址,如果該參數(shù)為NULL,則WM_TIMER消息被發(fā)送到應(yīng)用程序的消息隊列,并被CWnd對象處理。如果此函數(shù)成功則返回一個新的定時器的ID,我們可以使用此ID通過KillTimer成員函數(shù)來銷毀該定時器,如果函數(shù)失敗則返回0。如:

SetTimer(1,frequence,NULL);//啟動Id為1的定時器,時間間隔為FreQuence。

不再使用定時器時,可以銷毀它。銷毀定時器需使用CWnd類的KillTimer成員函數(shù),如:KillTimer(1);//銷毀ID為1的定時器。

2.在菜單中添加一個“運行”的按鈕,在其響應(yīng)函數(shù)里實現(xiàn)Teechart坐標(biāo)軸的初始化和啟動定時器以及其他一些初始化工作。比如計時器的計數(shù)標(biāo)志csj。

void CMainFrame::OnGorun()

{

??? // TODO: 在此添加命令處理程序代碼請

??? KillTimer(1);

??? csj = 0;

? ??CAxescoordAxes = (CAxes)m_tchart.get_Axis();//提取出控件中的坐標(biāo)軸

????coordAxes.put_Visible(TRUE);//顯示坐標(biāo)軸

? ??coordAxes.AddCustom(FALSE);//動態(tài)添加一個Custom

? ??CAxisleftAxis = (CAxis)coordAxes.get_Custom(i);//須在控件中添加一個Custom

? ??leftAxis.put_Automatic(FALSE);//對Left Axis的相關(guān)設(shè)置:自動大小關(guān)閉

? ??leftAxis.put_Minimum(0);//最小值

????leftAxis.put_Maximum(30);//最大值

? ??leftAxis.put_Increment(0);//增量任意

? ? leftAxis.put_StartPosition(0);//最小值開始的位置,百分比

? ??leftAxis.put_EndPosition(100);//最大值結(jié)束的位置,百分比

????m_tchart.AddSeries(0);

? ??//啟動定時器

????SetTimer(1,frequence,NULL);

}

3.OnTimer毀掉函數(shù)里添加繪圖代碼:本例中編寫了一個函數(shù)。但是需注意在Ontimer下需要對csj++。

void CMainFrame::drawCurves()

{

? ? ? ? ? ?mycs?= (CSeries)m_tchart.series(0);//提取出控件中的Series i

?????????? mycs.put_VerticalAxisCustom(0);//將數(shù)據(jù)綁定在custom i

?????????? mycs.AddXY(csj,rand()%25, NULL,RGB(255,12*i,20*i));

?}

??? CAxes coordAxesBottom = (CAxes)m_tchart.get_Axis();//設(shè)置橫軸滾動

??? CAxis bottomAxis = (CAxis)coordAxesBottom.get_Bottom();

??? bottomAxis.Scroll(1.0,TRUE);

}

四、

總結(jié)

以上是生活随笔為你收集整理的MFC下绘制曲线工具Teechart使用的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 国产第一页屁屁影院 | 国产午夜精品一区二区三区四区 | 6090伦理| 日本视频在线播放 | 久久国产劲爆∧v内射 | 插插插干干干 | 日本乱淫视频 | 久久久久久久久影院 | 韩国日本在线观看 | 男女激情在线观看 | 青青草日韩 | 秋霞午夜网 | 制服丝袜在线一区 | 精品日韩一区二区 | 欧美日韩一卡二卡三卡 | 一本色道久久综合熟妇 | 精品人妻无码一区二区三区蜜桃一 | 校花被c到呻吟求饶 | 91蜜桃传媒精品久久久一区二区 | 欧美日韩三级在线观看 | 新狠狠干 | 吻胸摸激情床激烈视频大胸 | 日韩av第一页 | 麻豆传媒网站在线观看 | 国产成人精品视频 | 午夜宅男在线 | 吊视频一区二区三区 | 欧美三根一起进三p | 亚洲综合激情 | 成人在线视频在线观看 | 国产91免费视频 | 久久嫩草精品久久久久 | 亚洲欧洲天堂 | 国产夫妻视频 | 性欧美在线视频观看 | 91传媒在线播放 | mm1313亚洲国产精品无码试看 | 怡红院一区二区 | 欧美精品三区 | 粉嫩av一区二区三区四区五区 | 日韩视频一区二区三区在线播放免费观看 | 香蕉大久久 | 欧美少妇15p| 中文字幕在线观看第一页 | 亚洲欧洲国产视频 | 精品人妻在线视频 | 国产福利片在线 | www.三级| 好吊妞在线 | 亚洲狠狠丁香婷婷综合久久久 | 能看的av | 亚洲人丰满奶水 | 毛片最新网址 | 岛国av免费在线 | 日本在线免费观看 | 就是喜欢被他干 | 成年人网站免费视频 | 99精品久久久久久中文字幕 | 美女脱得一干二净 | 香蕉在线视频观看 | 九色婷婷 | av在线首页 | 免费成人结看片 | 欧美在线中文 | 一级黄色片在线观看 | 中文字幕a√ | 中国少妇色 | 亚洲黄色录像 | 天天摸夜夜操 | 国产精品国色综合久久 | 搞逼综合网 | 成人免费xxxxxx视频 | 57pao国产成永久免费视频 | 久久亚洲综合色 | 北条麻妃一区二区三区四区五区 | 97超碰人人爱 | 亚洲三级大片 | 在线观看麻豆视频 | 视频一区二区中文字幕 | 欧美日本日韩 | 乌克兰极品av女神 | 久久久国产亚洲 | 神马午夜我不卡 | 五月的婷婷 | 日韩成人一区 | 偷偷色噜狠狠狠狠的777米奇 | 亚洲午夜久久久久 | 久久天堂 | 香蕉久久夜色精品 | 综合伊人av| 国产精品三 | 粉嫩av懂色av蜜臀av分享 | 亚洲欧美日韩成人 | 国产成人精品免高潮在线观看 | 午夜18视频在线观看 | 性饥渴的农村熟妇 | 亚洲第一视频区 | 欧美性生交大片免费看 | 日韩av片免费观看 |