杀手之王电影在线观看:VS2008中使用ACTIVEX控件

来源:百度文库 编辑:中财网 时间:2024/04/29 23:18:58

VS2005和2008中的控件的使用还真的是有点点的麻烦,VC6直接右键Insert ActiveX就搞定的事情,在VS2005中需要分成2步做。

首先,把TeeChart8.ocx放在某个目录下。(或者在使用前现在系统中注册.ocx文件 regsvr32 teechart.ocx 卸载时 加参数 -u) 然后,在Visual Studio 2005里面新建基于TypeLib的MFC类,通过文件浏览找到控件所在的位置(或者在下拉列表中找TeeChart v8)。这时就可以看到该控件引入的一大堆接口,除了ITChart,把其它所有的都加进来,然后确认。这样就新建了一大堆的COleDispathDriver的类,都在*.h文件里面。 然后,在Visual Studio 2005里面新建基于ActiveX控件的MFC类,通过文件浏览找到控件所在位置,这时可以看到该控件只有一个接口——ITChart,把它加进来,生成了CTChart的类,是基于CWnd的。 这样就可以通过CTChart::Create(NULL,NULL,...(后面记不清了)动态创建控件。这里要注意的是Create里面的字符串变量的使用,我之前一直用“”代替NULL,结果在程序运行时总报COLEException,说是DISP_E_MEMBERNOTFOUND,我找了很久很久才发现原来是这个原因。

(如果不需要动态的创建控件的话,可以在注册了控件之后,直接把.ocx文件拖动到工具箱中,或者在工具箱中选择com组建,把 teechart v8 添加进来)。

创建该控件后就可以通过CTChart::AddSeries来添加曲线了,呵呵。不过先别得意,通过这种方式创建的所有的类都是相互独立的,以前的CTChart::Series函数返回值是CSeries的变量,可以直接进行AddXY的操作,现在只能手工地将Series函数返回的LPDISPATCH(不知道写对没)变量用(CSeries)CTChart::Series(n)转换为CSeries的对象,然后进行画图啊什么的操作。 还有一点要说明的就是从TeeChart6开始,Teechart自动生成的类里面的函数都发生了变化,本来是Set***的函数都变成了put_***。如SetColor变成了put_Color。