VC中使用TeeChart繪制實時曲線_第1頁
VC中使用TeeChart繪制實時曲線_第2頁
VC中使用TeeChart繪制實時曲線_第3頁
VC中使用TeeChart繪制實時曲線_第4頁
全文預覽已結(jié)束

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

1、VC中使用TeeChart繪制實時曲線上網(wǎng)找了一個teechart8的Activex版本,在VC6下使用正常,感覺功能挺強大的,于是決定認真用一用,我是完全完全的新手,請高手們直接忽略我,或者給我提些好的建議。我得到的是一個teechart8.ocx文件,這是Activex的文件,使用之前先注冊一下,將該文件放入系統(tǒng)目錄下,然后打開命令提示符,或者直接在運行窗口輸入:regsvr32 TeeChart8.ocx,然后會有一個注冊成功的提示框,說明我們的ActiveX控件注冊成功,在VC6下就可以使用了。如果不想使用了,可以使用regsvr32 -u TeeChart8.ocx 解除對teech

2、art8的注冊。我的第一個任務(wù)是熟悉teechart控件。首先新建一個基于MFC的exe工程,選擇對話框,其他默認。進入工程以后可以看到類視圖中只有系統(tǒng)生成的默認的幾個類,我先在類視圖中在工程名上點右鍵新建兩個文件夾,一個叫src,一個叫tee,然后把默認生成的幾個類(dlg,app,about三個類)拖放到src文件夾中。做這一步實際上沒有什么實質(zhì)的意義,只是為了看起開比較方便,因為一會兒添加了teechart8以后會有很多的類添加進來,看起來非常困難,所以先提前把他們分開。閑話不多說,進入資源視圖,點擊主對話框后,刪除todo那個靜態(tài)文本。下一步我們要在這個對話框上放置一個teechart

3、圖表,但是工具欄中沒有,所以需要先添加一下。依次點擊 工程-增加到工程-components and controls,進入對話框后選擇registered ActiveX controls,找到TeeChart Pro Activex control v8后點擊insert,會彈出添加類的對話框,左邊的列表里面是可以選擇添加的類,現(xiàn)在我還不太了解具體類的作用,所以只好一并添加了,點擊確定以后回到資源視圖會發(fā)現(xiàn)工具欄下面多累一個圓形的小圖標,這就是我們的teechart8控件了。這時注意到,類視圖中已經(jīng)為我們添加了一堆的類,我把他們都放到tee文件夾中,看起來舒服多了。下一步回到資源視圖,將工

4、具箱中的teechart控件托入對話框,改變一下大小,稍作修改,界面設(shè)計就完成了。下一步要讓teechart輸出一個圖形,那這次的任務(wù)就大功告成了。在對話框上右鍵點擊圖標控件,點擊屬性,選擇teechart pro editer 選項卡,點擊edit chart ,出現(xiàn)一個名為edit的對話框,該對話框非常重要,包括了teechart的各種屬性。簡要介紹一下這些屬性,我的參考資料是“TEECHART應(yīng)用技術(shù)詳解”一書,該書是通過delphi描述的,我沒有學過delphi,勉強看著。首先就是series選項,該屬性包含的是需要繪制的圖表的類型,如曲線,餅圖,柱狀圖,等等等等,種類很多,這也是te

5、echart的優(yōu)勢。其次是chart,這個選項包含了圖表的顯示部分的很多屬性,如坐標軸,背景,標題,等等。data選項中就是繪制圖表需要的數(shù)據(jù)。export選項中包含了一些將圖表導出為圖片等格式的選項。print選項包含打印的設(shè)置。themes包含圖表的主題,主要是顯示方式。介紹完這寫選項以后,試著新建了一個serie,我建立的是fast line,準備做一個實時曲線的顯示,于是又更改了一下標題,改為實時曲線,并將chart選項中的legend的Visible前面的勾去掉。OK,編譯,運行。發(fā)現(xiàn)什么都沒有別說實時曲線了,就連曲線也沒有一根。其實很容易理解,畫曲線得有數(shù)據(jù)吧,數(shù)據(jù)都沒有怎么給你畫

6、呢?所以,還得給該曲線填充一點數(shù)據(jù)。最簡單的方法就是,直接在data選項中添加一些數(shù)據(jù),然后運行,發(fā)現(xiàn)我們可愛的圖表顯示出曲線了。好,熟悉teechart的基本任務(wù)完成。下一次我接著在這個基礎(chǔ)上試著繪制實時曲線。接著上一篇文章,本次我的任務(wù)是繪制一個實時曲線圖,可以實現(xiàn)坐標軸以及曲線隨著數(shù)據(jù)的增加而移動。要完成該功能,首先應(yīng)該為該圖表指定一個對象用于操作。單擊圖表,選擇 建立類向?qū)?,點擊member variables選項卡,點擊add variable按鈕,彈出添加變量對話框,輸入m_chart后點擊OK,一個與該圖表控件對應(yīng)的控件變量就建立完成了。進入類視圖,看到dlg類中多了一個m_ch

7、art變量。首先,我們利用該變量為該圖表填充隨機的初始數(shù)據(jù)。在使用之前,需要包含一些頭文件,于是,在XXXDlg.cpp的上面添加如下代碼: #include "tchart.h"#include "axis.h"#include "axes.h"#include "scroll.h"#include "series.h" 然后在OnInitDialog()方法中添加如下代碼: / TODO: Add extra initialization herem_chart

8、.Series(0).FillSampleValues(50); 這是點擊運行以后,就可以看到圖表控件上輸出了50個點連成的曲線了。如下圖所示下一步我們要做的是讓曲線動起來。簡單分析一下,要讓曲線動起來,可以將左側(cè)的點隱藏,右側(cè)再增加一些新的點。我們可以設(shè)置一個定時器,比如1s,每隔1s增加一個數(shù),這樣的話數(shù)據(jù)就可以不斷增長了。即添加如下代碼: /在OnInitDialog()中添加SetTimer(1,1000,NULL);然后為dlg類添加WM_TIMER的消息響應(yīng)函數(shù),并添加代碼: void CChartDlg:OnTimer(UINT nIDEvent)

9、/ TODO: Add your message handler code here and/or call default m_chart.Series(0).Add(900,"lable",1); CDialog:OnTimer(nIDEvent); 這里需要說明一下,add方法的三個參數(shù),第一個為y值,我添加的是900,第二個為x軸的標簽,第三個我不懂,希望有知道的人告訴我一聲,謝謝了。添加完畢后可以運行了,這時大家可以發(fā)現(xiàn)曲線在動,橫坐標消失,變成了lable,而且左側(cè)的曲線沒有移出界面,而是曲線整個壓縮,這不是我們想要的效果。所以我們還要再做更改。首先進

10、入資源視圖,點擊對話框,右鍵單擊編輯屬性點擊tools選項,單擊add添加工具。teechart8有很多的工具給我們選擇,這里我們點擊axis選項卡,選中axis scroll工具后點擊add后回到編輯窗,在axis下拉框中選擇bottom axis,然后關(guān)閉屬性編輯即可。接下來,需要實現(xiàn)坐標軸的移動。很簡單,只需要在OnTimer中添加中間的那一句代碼, void CChartDlg:OnTimer(UINT nIDEvent) / TODO: Add your message handler code here and/or call default m_chart.Series(0).Add(900,"lable",1); m_chart.GetAxis().GetBottom().Scroll(1.0,TRUE); CDialog:OnTimer(nIDEvent);void CChartDlg:OnTimer(UINT nIDEvent) / TODO: Add your message handler code here and/or call default m_chart.Series(0).Add(900,"lable",1); m_chart.GetAxis()

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論