您的位置:首页 > Web前端 > JavaScript

vc6.0生成ocx,然后使用js调用

2013-09-28 00:52 337 查看
使用vc++6.0生成ocx,然后使用js进行注册,调用

1.在vc中新建OcxTestFirst的activex控件工程(选中MFC ActiveX ControlWizard)





直接点完成 效果如下



2.为ocx控件添加属性和方法

点 查看--建立类向导 弹出如下界面:



点击Automation面板



添加add和add20成员方法 都分别含有一个形参 一个返回值 点击Add Method





添加成员变量 用于参数传递



总体效果如下:



修改add和add20源代码 修改如下



查看类的id



点击组建--全部重建 即在debug目录下生成ocx控件

在工程目录下新建call.html文件 修改内容如下:

<html>
<head>
<script type="text/javascript" language="javascript">
function callocx()
{
try{
alert("调用ocx");
var addocx=document.getElementById("addX");
//调用activex的add20方法
var sum=addocx.add20(5);
//显示经过activex的add方法之后的结果
alert("5+20 结果为:"+sum);
//调用add方法 加上传入的num为30的值
var sum2=addocx.add(5);
alert("5+30 结果为:"+sum2);
}catch(e)
{
alert(e);
}
}
</script>
<title>使用js调用ocx控件</title>
</head>

<body>
<center>
<!--object标签用于向网页中嵌入多媒体元素(例如图片、视频、activex、pdf等等)
clsid--注册表中某个类的id
codebase---对象的代码位置(如果是在注册表中注册过 则可以没有)
-->
<object classid="clsid:C5424CD1-E8DE-40B2-A3FD-4AD1B3F82BAA" codebase="Debug/OcxTestFirst.ocx" id="addX" width="20" height="20">
<param name="num" value="30" />
</object>
<br/>
<input type="button" value="调用ocx的方法" onclick="callocx();">
</center>
</body>
</html>


开始运行 在ie中进行测试 因为有些浏览器不支持object标签 我的测试为ie10

因为要安装未签名的activeX控件 所以需要修改ie的activex设置 internet选项--安全--自定义级别 将含有activex的选项都改为启用



最终的效果图: 点击调用ocx的方法的按钮



对于以上有一点 郁闷的是 <param name="num" value="30" /> 传递值没有通过

有人说是要序列号参数或者继承ActiveForm之类的 目前还有没解决 再查查资料 看看 是不是哪个地方出问题了

以上即是使用vc生成ocx 然后使用js注册 调用
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐