ActiveX插件的使用

来源:互联网 发布:eosinfo软件下载 编辑:程序博客网 时间:2024/06/08 04:22

一、简述

ActiveX插件源自微软,主要作为IE浏览器的插件程序,在这里我们不多介绍了,主要是对这方面应用不是很懂。前段时间由于工作需要了解了一些,通过网上查询的一些资料对如何生成以及如何使用ActiveX插件在这里做一下详细的记录。

二、如何生成ActiveX插件

其实生成一个ActiveX插件很简单,只需几步即可,不过前提是电脑上要装上VS。介绍一下我的电脑环境:VS2013 + win8 。


1、首先打开VS,新建一个MFC ActiveX控件项目,如下图。

这里写图片描述


2、进入到控件向导界面,一直点击下一步,直到控件设置界面,进行如下设置,(我们这里通过创建一个对话框来显示,所以这里创建的控件基于选择none)然后点击完成。

这里写图片描述


3、我们可以看到MFC已经帮我们完成ActiveX的框架了,我们可以在此基础上自由添加代码。

这里写图片描述


4、打开项目的属性页,在“配置属性”中点“常规”,在右侧将“MFC的使用”设置为“在静态库中使用MFC”,然后“应用”,“确定”。这里选择在静态库中使用MFC,是因为在生成目标文件(xxx.ocx)时已经将需要的依赖包含在内,所以不需要再包含MFC的一些依赖库,可以直接在其他电脑上使用。
这里写图片描述


5、点击生成解决方案。在生成的过程中,如果电脑上开着杀毒软件会弹出如下提示框。其实在生成MyActiveXText.ocx文件时,会将其写入注册表,所以杀毒软件会提醒有程序在修改注册表。在这里我们忽略此次提醒。

这里写图片描述

在Debug文件夹下我们发现成功生成了ocx文件,而ocx文件也就是我们的ActiveX插件。

这里写图片描述


6、这里我们虽然成功生成了插件,但是未添加任何功能。选择资源视图页面,添加一个对话框,去除两个按钮,添加一个编辑框。然后修改对话框属性:Border改为None,Control改为Ture,ID改为IDD_MAIN_DIALOG,Style改为Child,Visible改为True。修改编辑框的ID为IDC_EDIT_INPUT。

资源视图在这个位置:

这里写图片描述

这里写图片描述

注意:关于对话框,一定要将其Visible属性改为True(也就是ID为IDD_MAIN_DIALOG的这个最外层对话框对应的Visible属性,其默认为False),否则,即使其它一切设置都没有问题,但是最后对话框还是不显示!


7、我们通过双击对话框,为对话框添加一个类,如下图:

这里写图片描述


8、在MyActiveDemoCtrl类中添加CActiveXDlg对象。

这里写图片描述


9、在CMyActiveXTextCtrl的onDraw方法中注释掉原有的绘制椭圆代码,添加绘制对话框的代码。

这里写图片描述


10、打开CMyActiveDemoCtrl的类向导,选择消息,然后双击WM_CREATE消息添加到我们程序中,这里当CMyActiveXCtrl类处理WM_CREATE事件,我们可以初始化对话框对象,在onCreate函数中添加如下代码:

这里写图片描述 这里写图片描述

11、对话框构建结束。选择类视图页面,现在添加对外调用接口。

这里写图片描述

在 CActiveXDlg中添加如下代码:

CString CActiveXDlg::getEditContent(){    CString strEditContent;    GetDlgItemText(IDC_EDIT_INPUT, strEditContent);    return strEditContent;}

在CMyActiveXTextCtrl中添加如下代码:

BSTR CMyActiveXTextCtrl::GetEditContent(){    AFX_MANAGE_STATE(AfxGetStaticModuleState());    CString strResult = m_dlg.getEditContent();    // TODO:  在此添加调度处理程序代码    return strResult.AllocSysString();}

12、重新生成解决方法,如果没有错误,则该控件就会在本机中注册(上面已经提到过)。然后利用下面的HTML代码保存到.html文件中进行测试:

<HTML><HEAD><TITLE>TestMyActiveXDemo</TITLE></HEAD><OBJECT ID="ActiveXTestCtrl" WIDTH=500 HEIGHT=150 classid="CLSID:C8FEA6AA-4649-4DA1-9C1F-624D27812722"></OBJECT><BODY><p><input type="button" value="OutputContent" id="btnOK" onclick="getContent();"></input></BODY><script language="javascript">function getContent(){ alert(ActiveXTestCtrl.GetEditContent());}</script></HTML>

这里的CLSID需要注意,这个id在我们CMyActiveXTextCtrl.cpp 中,也可以在CMyActiveXTextCtrl.idl文件中查看:

这里写图片描述

这里写图片描述


13、用IE浏览器打开该HTML文件,会弹出下面的提示,点击 “允许阻止的内容”。
这里写图片描述


14、效果图

这里写图片描述


我们打开注册表可以看到我们的ActiveX插件已成功注册。

这里写图片描述


此篇文章详细介绍了如何生成以及如何使用一个ActiveX插件。但是ActiveX插件只能在IE浏览器中使用,下一篇中将介绍NPAPI插件在火狐浏览器上的使用。

0 0