如何调用COM组件里的事件

如何调用COM组件里的事件,第1张

我用的VS2005,button事件名为btnTest_Click!

有两个asp:Button,一个ID为btnTest1,另一个ID为btnTest2!

在页面中btnTest1的<asp:Button ID="btnTest1" Text="click me one" OnClick="btnTest_Click" />

btnTest2为:<asp:Button ID="btnTest2" Text="click me twe" OnClick="btnTest_Click" />

这样就可以调用后台的同一事件了!

注:button的Click事件必须是button事件,要不会报错!如:

<asp:Label ID="lalMessage" runat="server" OnLoad="lalMessage_Load"></asp:Label>

<asp:Button ID="btnTest2" Text="click me twe" OnClick="lalMessage_Load" />

用Javascript捕获ActiveX对象的事件 最近参与了一个项目,我的同事在开发一个ActiveX对象,我帮他编写JS脚本来调用这个对象,其中碰到蛮多问题,最难的就是如何响应由ActiveX对象返回的对象事件。正好,现在一起总结一下。 首先,我来介绍一下COM组件,以便说明js如何响应 COM组件 方法: void init()//初始化对象Project createProject()//创建一个Project类型的对象并返回 事件:onInit( int_code ) //当init成功后触发Project类的结构: 方法: void init() //初始化Project对象 事件:onInit( int_code ) //当init成功后触发 然后,我们在网页里创建一个ActiveX对象 <object id="myobj" classid="CLSID:XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX"></object> 然后,我们定义全局的变量obj和project,来保存对象的实例,并调用他们的相关方法 var obj = null //全局对象 var project = null //Project对象 window.onload = function(){ obj = document.getElementById('myobj') //获取对象 obj.init() //初始化对象 project = obj.createProject()//创建project对象 project.init() //调用project对象的方法 } 最常见的对象事件响应方法 最常见的莫过于使用script event for的标签语法来响应对象事件了,Windows Media Player就是这样做的 <script language="Javascript" event="onInit( code )" for="myobj"> if ( code == 0 ) { //Todo: } </script> for属性指定了这个事件响应的对象是myobj,注意,这里要写object标签的id,不能是js变量 event属性指定了要响应哪个事件,这里是onInit事件。 如何响应ActiveX对象返回的对象事件 现在问题来了,我们调用了createProject方法,得到了一个project对象。这个对象也有事件,那么这时应该如何来响应呢? 显然,用之前的script event for的方法是不行的,因为for属性不能指定js变量的值。网上搜索了一下,找到了一种很特别的方法,就是用双冒号来定义函数名,于是,修改程序如下: var project = obj.createProject()function project::onInit( code ) { if ( code == 0 ) { //Todo: } } 不过,运行后有报错,说project未定义,想起来,js会优先执行function这个函数定义,也就是说先定义函数,然后才执行语句。所以,function必须在project创建成功以后才能定义,因此,修改程序如下: var project = createProject()var fn = function(){ //定义一个函数,这个函数内部会定义我们的回调函数 //回调函数 function project::onInit( code ) { if ( code == 0 ) { //Todo: } } }fn() //执行这个函数,也就是定义回调函数 运行了一下,确实能响应了。

上面所说的WM_CREATE与COM编程无关,完全是MFC方面的知识,建议你先了解MFC的六大机制,WM_CREATE 这些消息 就是六大机制里面的消息映射机制。

你可以点击类,然后添加对应类的消息响应函数,说的比较笼统,先大致了解MFC方面的知识,之后再学习COM吧。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/bake/11644878.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-17
下一篇 2023-05-17

发表评论

登录后才能评论

评论列表(0条)

保存