COM高级应用-ActiveX控件(OCX) 小记

来源:互联网 发布:沙迪克火花机编程视频 编辑:程序博客网 时间:2024/06/04 23:25

ActiveX控件:

ActiveX控件也即OCX,继承了自动化的特性,也仅仅可以理解为Automation自动化的界面形式,
即ActiveX控件是个可见的自动化对象。
ActiveX控件类的继承关系:COleControl->CWnd,从CWnd继承,这样使得控件可以接受窗口的所有消息.
控件对自身的窗口消息处理过程进行封装,同时向外提供了接口,客户程序通过OCX控件的接口与其通讯。
在VC中,客户窗口中插入一个OCX控件后,通常都需要生存一个OCX代理或封装类与OCX控件通讯,如果自己手工调用就比较麻烦。

ActiveX控件的主要的两个特点就是:
1。可视化。
2。跨编译运行环境被客户调用,通过接口与客户通讯。


在VC6中,按MFC ActiveXCtrl工程向导一步步生成后,向导形成如下三个默认类:

接口类:
 作用:
 定义COX控件向外提供的"属性"和"方法".
 下面的控件类,都为接口中所定义的”属性“和”方法“服务。

控件类:
  作用:
  1.通过类似如
    PX_Short(pPX,属性名,数据成员,初始值);
    的宏,使控件类中的"数据成员"与接口所定义的"属性"建立关联和映射.
    
  2.通过类似如
    DISP_PROPERTY_EX(X,X,设置方法,得到方法,数据类型)
    的宏来建立"属性"与设置与读取属性值的"方法"的映射.
  3.通过类似如
    DISP_FUNCTION(X,X,X,返回参数,传入参数)
    的宏来实现接口中定义的"方法"
  4.自身的窗口消息处理.
  
属性页类:
    在客户端插入OCX控件后,在控件的属性窗口中对其"属性"进行可视化设置,属性窗口中的控件及布局由该属性页类来定义。
    该属性页类继承关系:COlePropertyPage->CDialog,向导为该类在资源窗口中创建了一个默认的对话框资源。
    如果能使用户在OCX控件的属性窗口中对其“属性‘进行设置,通常都要在对话框可以添加用于设置的控件.
    然后通过类似如DDP_CBIndex()的宏,使得属性页对话框中的"控件"、属性页类中的”数据成员"及接口类中定义的“属性项”建立关联。
    这样关联的作用是:在OCX控件的属性页中完成OCX控件属性设置后,能立即使的控件属性有所变化。

编译器为上面三个类建立了映射及关联后,开发人员剩下要做的就是加”属性“和”方法“的简单活。 

原创粉丝点击