DoubleLi

qq: 517712484 wx: ldbgliet

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::
  4737 随笔 :: 2 文章 :: 542 评论 :: 1615万 阅读
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

之前写过文章通过自定义函数来实现ActiveX回调JS中的函数,最近在网上发现一更简洁的方法,通过事件触发,在这里小结一下,为使内容连贯,请参考我之前的《一步一步实现ATL开发的ActiveX组件与javascript的交互》系列文章http://hi.baidu.com/hwygy_001/blog/item/21ec5bc5294f64bd8326ac72.html

 

1.  如果使用的是VS2010,则在Class View窗口中右击_ICalcEvents接口,依次选择“Add”、“Add Method…”,根据添加方法向导添加AddCompleted方法,如下图所示:

若采用的VS2008,则没有自动的事件方法,需要手工注册,找到项目的.idl文件,在其中的library CalculatorLib中添加如下代码:

dispinterface_ICalcEvents

        {

                properties:

                methods:

                    [id(1)]voidAddCompleted([in]DOUBLE * bstrCmdInfo);

        };

完成手工注册。

2.  然后在Class View窗口中右击CCalc类,依次选择“Add”、“Add Connection Point…”,在弹出的实现连接点窗口中实现_ICalcEvents接口。

 

 

 

3.  完成向导后,VS会自动为我们生成基本框架,包括引发事件的方法Fire_AddCompleted。我们只需在Add方法中添加_ICalcEvents_CP.h(生成的Fire_AddCompleted方法所在文件)头文件,运算并在运算结束时调用Fire_AddCompleted的代码:


STDMETHODIMP CCalc::Add(DOUBLE a, DOUBLE b,DOUBLE * result) 

{ double result; 

*result = a + b; 

 Fire_AddCompleted(result); 

return S_OK; 

}

 

4.在网页中添加代码进行测试(添加的javascript代码如下),应该能够得到我们想要的效果。

<script type="text/javascript">    

 

function add() {        

var calc = document.getElementById('Calc');   

    calc.attachEvent("AddCompleted", OnAddCompleted);        

    calc.Add(3, 4);    

}     

function OnAddCompleted(result) {      

  alert(result);    

}

</script>

 

参考文章:http://www.cnblogs.com/chinadhf/archive/2010/09/03/1817336.html

 

 

from:http://hi.baidu.com/hwygy_001/item/fd04a23a2649be0acfb9fe23

posted on   DoubleLi  阅读(687)  评论(0编辑  收藏  举报
编辑推荐:
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 展开说说关于C#中ORM框架的用法!
历史上的今天:
2011-11-02 DHTMLX Tree JSON添加自定义属性方法
2011-11-02 DHTMLX Tree中文开发指导
点击右上角即可分享
微信分享提示