网页调用OCX控件总结

  • 关于控件注册与取消注册的两种方法:
  • 网页调用OCX控件方法:
  • 网页调用OCX方法的传参问题:
  • MVS程序编写OCX控件:

关于控件注册与取消注册的两种方法:

第一种: 使用MVS程序编写OCX控件的时候以管理员权限运行,并且打开注册输出,如下图:

第二种: 不以管理员身份运行的话,要关闭注册输出,否则会无法生成解决方案。生成的OCX控件在使用的时候需要通过bat脚本命令文件注册。注销也是一样。具体的bat指令如下图所示:

bat指令如果有什么不懂自行百度。


网页调用OCX控件方法:

HTML代码如下:

<!DOCTYPE html>
<html><head><meta charset="utf-8" /><title>OCX测试例程</title></head><body><form name="form1"><p>返回信息:<br/><textarea type="text" name="pOutInfo" size="60" style="width: 600px;height:124px" cols="20" rows="1"/></textarea>  <br/> <p><input type="button" onclick="Clear()" value="清空信息" />&nbsp;&nbsp;&nbsp;</p></p><p><input type="button" value="获取卡号数据并显示在网页上面" id="btnOK_card" onclick="GET_IDCARD();"></input>&nbsp;&nbsp;&nbsp;</p></form><object classid="clsid:26A9189F-A696-457F-9F31-54B2D3B06BD9"id="test" CODEBASE="MFC_OCX.ocx#version=1.0"width="0" height="0"></object></body><script language="javascript" type="text/javascript">var myform = document.form1;function GET_IDCARD(){var ret;var SIDbuff;var pOutInfo_11;ret=test.Show_Test();if (ret < 0) {myform.pOutInfo.value = "返回错误码:" + ret;}else {SIDbuff=test.req_data;myform.pOutInfo.value = "获取卡号数据成功:"+SIDbuff;}}function Clear() //清空信息{myform.pOutInfo.value = "";}</script>
</html>

下面是这段代码的一些讲解:

首先呢,控件在Object标签里面进行调用,通过OCX控件生成时就固有的CLASSID去调用对应的控件,具体可以在OCX控件的IDL文件中查看,具体如下图CMFC_OCXCtrl类信息,每个控件都是有一定的样式,这里的HTML设置的控件的样式是宽高都是0,即是不显示控件的样式,但是还是可以正常使用控件方法中的样式属性等。值得一提的一点是,CLASSBASE,这个关键字指定的是OCX加载的路径,这里指定的是当前目录下,也可以指定在公网下载OCX控件,具体请自行百度查阅。

这段HTML文件的执行流程是:
点击网页的按钮,执行对应的按钮响应函数,在按钮响应函数中调用OCX控件的方法,去进行相应的操作。这时会碰到一个问题,就是控件中的方法中的结果如果传到网页中呢?


网页调用OCX方法的传参问题:

这里只是其中的一个方法,仅供参考,其他方法请自行百度

传参问题:在编写OCX控件的时候,设定属性值控件的方法在执行之后获得的值,直接赋值给属性值,网页在成功调用OCX控件之后,可以直接类似于类成员或是结构体成员一样去使用控件的属性值,因为本质上,属性就是类的成员。之后的图片中会指出哪个变量是属性值,以便没有接触过的朋友了解。


MVS程序编写OCX控件:

在MVS程序上面编写OCX控件主要是修改如图三个文件
图中的中间这个头文件是供外界使用的控件的方法或是属性是的声明。

这里值得一提的是enum枚举变量的声明,添加一个方法之后就会生成一个枚举变量,这里的枚举变量生成可能会有问题,出现错误,如果出现错误,照着这个样式改过来。不知道具体的影响是什么,MVS就是自动生成错了这个枚举变量。

其中最后的一个变量Cstring变量是属性值。属性值的前一个是生成属性值一起生成的方法。前面第二个是添加的方法,可供外界使用。我是在这个供外界使用的方法中通过给属性值赋值的,网页直接调用属性值变量的方法把OCX控件的运算结果(想当于是返回值)传递出去。

关于属性值的一个问题:
属性值具体的设置方法请自行查阅,或是我再下一篇文章中介绍一下,这里只是提一下属性值的持久性支持,这个在MFC_OCXCtrl.cpp文件中进行设置,具体的函数已经自动生成,只要添加需要保持持久性的属性值。

// CMFC_OCXCtrl::DoPropExchange - 持久性支持void CMFC_OCXCtrl::DoPropExchange(CPropExchange* pPX)
{ExchangeVersion(pPX, MAKELONG(_wVerMinor, _wVerMajor));COleControl::DoPropExchange(pPX);// TODO: 为每个持久的自定义属性调用 PX_ 函数。PX_String(pPX, "req_data", m_req_data, "0");
}

网页调用OCX控件总结相关推荐

  1. Java调用ocx控件以及dll

    2019独角兽企业重金招聘Python工程师标准>>> http://lvqingboy-163-com.iteye.com/blog/769358 通过Java调用OCX控件有几种 ...

  2. Javascript调用OCX控件

    什么是ocx控件? 对象链接和嵌入用户控件(OCX)是一种可以由在微软的Windows系统中运行的应用软件创建使用的特殊用途的程序. 想知道究竟的可以看看这个帖子. http://www.tososo ...

  3. C#中调用OCX控件

    调用OCX控件的步骤: 1.在系统中注册该ocx控件,命令:regsvr32.exe 控件位置(加 /u 参数是取消注册) 2.在.net的工具箱中添加该控件,拖到form中去就可以了. 不用工具箱的 ...

  4. java jni ocx_Java调用ocx控件以及dll

    [ 通过Java调用OCX控件有几种方法,JNI.JACOB.Jawin等 1.JNI 最直接的方式,也是最麻烦的方式,需要自己完成所有的工作,不推荐. 2.Jawin 尝试了一下,效果不错,但相 通 ...

  5. java ocx调用_Java调用ocx控件以及dll

    下载jacob包 这个包中有jacob-1.17-M2-x64.dll和jacob-1.17-M2-x86.dll两个dll和jacob.jar一个jar包,两个dll一个是64位一个是32位,这个对 ...

  6. 使用C#在Visual studio 2012调用OCX控件

    使用C#在Visual studio 2012调用OCX控件 筒子们好! 下面以VS2012集成开发环境下的WinForm工程为例进行讲解. 打开VS2012 新建项目,选择其他语言里面的Visual ...

  7. java调用ocx控件(ActiveX控件),SWT调用ocx(ActiveX)

    java调用ocx控件(ActiveX控件),SWT调用ocx(ActiveX) 注 : OLE.OCX.ActiveX不进行过多阐述,简单理解就是插件,组件类 调用成功,即可展示ocx对应的窗口 ​ ...

  8. 【QT】Qt调用OCX控件详解

    OCX控件的注册 首先,调用ocx控件需要保证ocx本身是已经注册了的.如果没有注册请先按"Win+R"输入"cmd"打开命令窗口.然后输入regsvr32 + ...

  9. java调用ocx控件获取数据_Java调用ocx控件以及dll

    通过Java调用OCX控件有几种方法,JNI.JACOB.Jawin等 1.JNI 最直接的方式,也是最麻烦的方式,需要自己完成所有的工作,不推荐. 2.Jawin 尝试了一下,效果不错,但相对来说, ...

  10. JavaScript调用OCX控件,运行时报错:对象不支持“XXX”属性或方法【已解决】

    这段时间调试一个产品,其中一项是用javascript调用OCX控件. 控件注册成功之后(如何注册及处测试出现的问题参见另一篇博客:win10注册ocx控件的步骤(包含错误处理方法0x80040200 ...

最新文章

  1. 【spring】di(依赖注入)使用实例
  2. 网吧网管在自杀前的遗书
  3. springboot之jackson的两种配置方式
  4. BZOJ3514:GERALD07加强版(LCT,主席树)
  5. C++11命名空间的using说明
  6. 华为王军:未来座舱操作系统只有1个或者2个生态
  7. SSAS的MDX语句整理
  8. 小甲鱼c语言课后作业作业百度云,小甲鱼c语言视频教程
  9. 微型计算机原理 考试试题,微机原理期末考试试题及答案
  10. 面经手册 · 第16篇《码农会锁,ReentrantLock之公平锁讲解和实现》
  11. 中国区块链专利数量全球第一 BAT专利数稳居世界20强
  12. unity 转微信小游戏快速创建流程
  13. java guardedby_Oracle官方并发教程之Guarded Blocks
  14. 精灵图在线测量,自动生成想要图片的宽高及位置
  15. 用WORD批量制作工作证件
  16. 也曾青春年少,小虎队
  17. 好好学习,天天向上------融会贯通
  18. 【欣赏】一组伤感唯美的图片
  19. PLC模糊控制之中心法(加权平均)解模糊器(F/D)
  20. 阿里图标字体库的动态使用Android

热门文章

  1. c 语言ifelse语句例子,C if else 语句
  2. postgresql 客户端 uri 设置时区
  3. JQueryUI进度条组件学习笔记
  4. crio电压采集 labview_LabVIEW与cRIO入门.pdf
  5. 新建一个C#控制台应用程序
  6. jmeter---ftp性能测试
  7. 世界地图可以无限放大_不敢相信!世界地图,你竟然骗了我这么多年...
  8. 什么是Adobe Creative Cloud,值得吗?
  9. 设备健康管理平台如何为企业打造五大核心设备管理体系?
  10. 教务系统自动评教_「四川大学教务处本科登陆系统」四川大学本科教务系统 - 一键评教 - seo实验室...