声明:参考资料来自其他博主,如果侵犯您的权益,需要删除本文,请联系[email protected]进行删除。
最近在研究OCX,现在把JS与OCX的交互实现整理记录一下。
一、在VS2008根据MFC ActiveX控件向导生成一个OCX,具体参考了http://download.csdn.net/detail/tgdzsjh/6545751中的FirstOcx创建过程。
在VS2008中生成FirstOcx的时候,FirstOcx.ocx已经注册好了;如果需要手动注册的话,先将FirstOcx.ocx复制到C:\Windows\System32下(64位复制到C:\Windows\SysWOW64下)以管理员身份运行cdm,然后cd到FirstOcx.ocx所在目录输入regsvr32 FirstOcx.ocx进行注册。由此ocx已创建好。
二、JS调用First.ocx里的AboutBox()和MyFunction()。这里参考了http://fpcfjf.blog.163.com/blog/static/55469793201501231519297/这篇文章。具体代码如下:
<!DOCTYPE html>
<html>
<head>
<title>js and ocx interface</title>
<script type="text/javascript">
function js_init(){
FirstOcx.AboutBox();
alert("login successed");
}
function js_call(){
FirstOcx.MyFunction();
}
</script>
</head>
<body>
<p>
<object classid="clsid:E246C14F-DECE-492E-9BB7-14C7E322BEC1" id ="FirstOcx" style="width:347px;height: 265px">
<PARAM NAME = "_Version" VALUE = "65536">
<PARAM NAME = "_ExtentX" VALUE = "2646">
<PARAM NAME = "_ExtentY" VALUE = "1323">
<PARAM NAME = "_StockPros" VALUE = "0">
</object>
</p>
<p>
<input id = "Button1" type = "button" value = "initialize" οnclick="return js_init()" />
<input id = "Button2" type = "button" value = "on self" οnclick=" return js_call()" />
</p>
</body>
</html>
因为在创建OCX的时候,已经进行了调度映射,所以第二篇参考文章中说的问题就解决了。
下一步,将研究JS和OCX带参数的函数之间的参数传递。
代码下载: