VC中使用TeeChart繪制實(shí)時(shí)曲線11_第1頁
VC中使用TeeChart繪制實(shí)時(shí)曲線11_第2頁
VC中使用TeeChart繪制實(shí)時(shí)曲線11_第3頁
VC中使用TeeChart繪制實(shí)時(shí)曲線11_第4頁
VC中使用TeeChart繪制實(shí)時(shí)曲線11_第5頁
已閱讀5頁,還剩2頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

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

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

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

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

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

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

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

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

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

10、果。所以我們還要再做更改。首先進(jìn)入資源視圖,點(diǎn)擊對(duì)話框,右鍵單擊編輯屬性點(diǎn)擊tools選項(xiàng),單擊add添加工具。teechart8有很多的工具給我們選擇,這里我們點(diǎn)擊axis選項(xiàng)卡,選中axis scroll工具后點(diǎn)擊add后回到編輯窗,在axis下拉框中選擇bottom axis,然后關(guān)閉屬性編輯即可。接下來,需要實(shí)現(xiàn)坐標(biāo)軸的移動(dòng)。很簡(jiǎ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.GetAxi

溫馨提示

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

最新文檔

評(píng)論

0/150

提交評(píng)論