VS2005和2008中的控件的使用還真的是有點(diǎn)點(diǎn)的麻煩,VC6直接右鍵Insert ActiveX就搞定的事情,在VS2005中需要分成2步做。 首先,把TeeChart8.ocx放在某個(gè)目錄下。(或者在使用前現(xiàn)在系統(tǒng)中注冊(cè).ocx文件 regsvr32 teechart.ocx 卸載時(shí) 加參數(shù) -u) 然后,在Visual Studio 2005里面新建基于TypeLib的MFC類,通過文件瀏覽找到控件所在的位置(或者在下拉列表中找TeeChart v8)。這時(shí)就可以看到該控件引入的一大堆接口,除了ITChart,把其它所有的都加進(jìn)來,然后確認(rèn)。這樣就新建了一大堆的COleDispathDriver的類,都在*.h文件里面。 然后,在Visual Studio 2005里面新建基于ActiveX控件的MFC類,通過文件瀏覽找到控件所在位置,這時(shí)可以看到該控件只有一個(gè)接口——ITChart,把它加進(jìn)來,生成了CTChart的類,是基于CWnd的。 這樣就可以通過CTChart::Create(NULL,NULL,...(后面記不清了)動(dòng)態(tài)創(chuàng)建控件。這里要注意的是Create里面的字符串變量的使用,我之前一直用“”代替NULL,結(jié)果在程序運(yùn)行時(shí)總報(bào)COLEException,說是DISP_E_MEMBERNOTFOUND,我找了很久很久才發(fā)現(xiàn)原來是這個(gè)原因。 (如果不需要?jiǎng)討B(tài)的創(chuàng)建控件的話,可以在注冊(cè)了控件之后,直接把.ocx文件拖動(dòng)到工具箱中,或者在工具箱中選擇com組建,把 teechart v8 添加進(jìn)來)。 創(chuàng)建該控件后就可以通過CTChart::AddSeries來添加曲線了,呵呵。不過先別得意,通過這種方式創(chuàng)建的所有的類都是相互獨(dú)立的,以前的CTChart::Series函數(shù)返回值是CSeries的變量,可以直接進(jìn)行AddXY的操作,現(xiàn)在只能手工地將Series函數(shù)返回的LPDISPATCH(不知道寫對(duì)沒)變量用(CSeries)CTChart::Series(n)轉(zhuǎn)換為CSeries的對(duì)象,然后進(jìn)行畫圖啊什么的操作。 還有一點(diǎn)要說明的就是從TeeChart6開始,Teechart自動(dòng)生成的類里面的函數(shù)都發(fā)生了變化,本來是Set***的函數(shù)都變成了put_***。如SetColor變成了put_Color。 |
聯(lián)系客服