visual stdio 开发ActiveX控件基本教程

比较少人会专门开发控件,但是有时候工作需要,需要开发简单的控件,控件技术

因为要和浏览器交互,所以有些需要注意的点,此文为需要开发简单控件准备,基本

满足基本的功能要求。包含必要的工程设置,方法的创建和调用,属性的添加和使用,

事件的添加,以及事件的使用,和JS的交互示例。希望对你有用。

 

1. 以管理员权限打开Visual Stadio并创建MFC ACTIVEX 工程。

以管理员权限打开是因为编译调试时,会在系统注册这个控件,需要管理员权限

 

2. 设置调试环境。以免无法进行调试。

visual stdio 开发ActiveX控件基本教程

 

3. 设置静态库使用MFC

visual stdio 开发ActiveX控件基本教程

 

4. 在类视图中,添加方法

visual stdio 开发ActiveX控件基本教程

 

5. 在类视图中添加属性,如上图选择属性。

属性的用法,

  1. 属性可以在初始化的时候设置。如下图JS。                                         

             visual stdio 开发ActiveX控件基本教程

        2.  这样设置的属性,需要在代码中持久化

           visual stdio 开发ActiveX控件基本教程

         3. 属性更改后。控件中会得到通知。

           visual stdio 开发ActiveX控件基本教程

          

           响应函数中在值改变时,会得到通知。

 

 6 . 为了方便调试,可以增加控制台界面,将调试信息输出到控制台

首先,在App类中,添加如下代码。就可以调用 printf 输出信息到控制台,调试非常方便。

visual stdio 开发ActiveX控件基本教程

 

7.  添加事件,和JS交互,有些事件处理事件比较长,可以通过事件通知的形式,通知JS更新状态。还是在类视图,这次选择CTRL类,右击菜单,如下:

visual stdio 开发ActiveX控件基本教程

 

事件函数名称可以自定义,也可以用已有的几个事件。

在完成添加后,会自动添加如下代码。也可能是在类的定义里,

visual stdio 开发ActiveX控件基本教程

在添加完事件后,在JS中,可以添加事件处理,如下

 visual stdio 开发ActiveX控件基本教程

 

 8.  因为是Unicode编码方式,所以需要用到wide转mutil字符的函数,如下,

  visual stdio 开发ActiveX控件基本教程

 

9.  因为JS和ActiveX交互,地址空间是不一样的,如果ActiveX中申请的内存需要返回到JS中,需要用Sys接口申请内存,如下:

    visual stdio 开发ActiveX控件基本教程

 

 

10. 对于mutil和wide char 的转换,还有一种方式就是使用CString 构造。

CString 有传muti char的构造函数。实现自动转化,你就说牛不牛逼,意不意外。

 

11. 关于运行的时候提示找不到dll,一般如果dll本身没问题的话,肯定是你引用的路径由问题。排除方法是,在调用loadLibrary之前调用 GetCurrentFolder(这个函数不能直接调,我只是想说,你可以找个系统函数获得当前执行路径),如果这个路径下没有dll,那肯定是要报错的嘛!

 

好了,先记录这么多,后续有高级特性再添加。