visual stdio 开发ActiveX控件基本教程

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了visual stdio 开发ActiveX控件基本教程相关的知识,希望对你有一定的参考价值。

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

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

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

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

 

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

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

 

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

技术分享

 

3. 设置静态库使用MFC

技术分享

 

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

技术分享

 

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

属性的用法,

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

             技术分享

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

           技术分享

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

           技术分享

          

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

 

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

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

技术分享

 

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

技术分享

 

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

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

技术分享

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

 技术分享

 

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

  技术分享

 

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

    技术分享

 

 

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

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

 

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

 

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

以上是关于visual stdio 开发ActiveX控件基本教程的主要内容,如果未能解决你的问题,请参考以下文章

双击ActiveX控件时如何禁用Visual Basic对话框

vs201220132015 添加 ActiveX制作控件插件 Visual Studio Installer

Visual Studio 2013 中的“无法导入 ActiveX 控件”

如何开发ActiveX控件

如何为 Visual Basic 6 ActiveX CLSID 设置“友好”名称

如何在activex控件中传输id_edit_copy msg