VC++开发Active例子

   关于Active控件的理解呢,就是一种浏览器使用的插件,优点在于用户安装了插件后,我们可以获取其客户端的信息进行操作,大家都知道浏览器出于安全的机制是禁止网页访问客户端的信息的,Active控件可以解决这个问题,缺点呢就是Active只是IE浏览器的一个插件,要兼容其他浏览器就必须开发其他浏览器的插件,所以在扩展性方面还是有所不足的。为什么很多银行网站都需要用IE访问也就是这个原因。
  以上都是本人对Active控件的一些见解,只是我本人的见解,可能会有不正确的地方哈。进入正题吧,开始接触Active的时候,我感觉还是什么郁闷的,因为我本来是一位.NET的编程人员,一般用到的语言是C#,难免对C++的编程有点不太适应,不过还好有人知道还是比较容易上手的,下面就介绍如何开发一个简单的Active控件吧。
  我用的开发环境Visual C++ 6.0(中文版),首先我们来新建一个Active项目,我们选择文件中的新建(New),然后选择一个MFC Active ControlWizard,工程名称就叫ActiveTest,如图所示。
关于C++Active控件开发的研究
然后下一步如果没有啥属性设置直接按完成(Finish)就行。
好了,我们创建玩一个Active的工程,我们可以看到如图所示的类图
VC++开发Active例子

我们可以看到_DActiveTest和_DActiveTestEvents两个树形结构,这里就是显示供外部浏览器调用的接口,我们可以新建和查看,当然,要新建一些方法调用和参数事件等,相信用C++的童鞋们都会的了。我们现在就来新建一个简单的弹框函数供浏览器调用吧.
关于C++Active控件开发的研究
选择查看 ,建立类向导,就会弹出如何所示的框,再选择Automation的选项卡,然后按一下Add Method的按钮,在这里新建一个HelloWorld的方法供外部调用,然后OK创建完毕,我们可以见到类视图中CActiveCtrl属性模块会多出了一个我们新建HelloWorld的方法,而接口属性也有看到我们新建的方法,我们双击进去写一个弹框函数AfxMessageBox("HelloWorld");
关于C++Active控件开发的研究
然后我们就可以编译了,编译通过后我们生成一个Acitve控件,后缀为OCX,然后生成的控件在当前项目的Debug文件夹下,C++也会自动帮我们注册Active控件到浏览器下,至于别的用户使用我们需要一个DOS命令或者打包成CAB包,这些我迟点会写一篇文章介绍,至于Active控件的调用,我们可以新建一个txt文件写入以下内容.
  •   <html>
  •   <head>
  •     <title>ActiveTest</title>
  •     <script type="text/javascript">
  •   function HelloWorld(){
  • try {
  •   var obj=document.getElementByIdx_x("DTM");
  •   obj.HelloWorld();
  • catch (e) {
  •   Alert( "Js error: " + e.message);
  • }
  •   }
  •     </script>
  •   </head>
  •   <body>
  • <OBJECT style="WIDTH: 0px; HEIGHT: 0px" id=DTM classid=clsid:55810BD6-92DD-4568-8AEF-E25E21152629>
  •   <PARAM NAME="_Version" VALUE="65536">
  •   <PARAM NAME="_ExtentX" VALUE="4365">
  •   <PARAM NAME="_ExtentY" VALUE="2354">
  •   <PARAM NAME="_StockProps" VALUE="0">
  • </OBJECT>
  • <div>
  • <input id="method" type="button" value="调用" onClick="HelloWorld();"/>
  • </div>
  •   </body>
  • </html>
然后另存为html后缀的网页,然后直接按按钮就可以调用Active控件的方法,需要说明下的是
VC++开发Active例子
uuid就是当前Active控件的id
我们用IE打开网页,然后按下按钮,就可以调用Active控件的方法,如图所示
关于C++Active控件开发的研究

好了,我们就调用成功啦,哇咔咔。
结语:这是一篇我个人见解的文章,希望可以帮到开发Active控件的新手们,小西瓜奉上~这是一篇以前在新浪博客写的文章


欢迎分享,(联系QQ/微信:337407980)

打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,您说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

评论