VC 2005 VC2008 VC 2010 ACTIVEX 事件 EVENT

http://www.51zxw.net/study.asp?vip=1368926

由于vc2005在开发activex中有bug,(向导不能生成event),在使用时不能自己封装activex控件类,下面把开发过程

总结如下:

生成event

1、 *.idl文件的dispinterface _DXXEvents methods: 下添加 //XX:activex控件名

[id(intValue)] void EventName(); //intValue整数值,此eventID

2、在XXCtrl.h文件的enum 添加 eventidEventName = intValue

3、在XXCtrl.h文件控件类下添加函数

void EventName()

{

FireEvent(eventidEventName, EVENT_PARAM(VTS_NONE));

}

4、在XXCtrl.cpp文件的BEGIN_EVENT_MAPEND_EVENT_MAP间添加:

EVENT_CUSTOM_ID("EventName", eventidEventName, EventName, VTS_NONE)

经过以上步骤就添加了一个没有参数的Event

如果有参数比如两个参数 BSTR strvalue LONG lValue

那么相应的添加如下:

1 [id(intValue)] void EventNam(BSTR strvalue, LONG lValue);

3、不能在线程中调用,POSTMESSAGE到主线程调用

void EventName(LPCTSTR strvalue, LONG lValue)

{

FireEvent(eventidEventName, EVENT_PARAM(VTS_BSTR VTS_I4), strvalue lValue);

}

4EVENT_CUSTOM_ID("EventName", eventidEventName, EventName, VTS_BSTR VTS_I4)

 

方法就采用向导自己生成,包括返回值给JS都可以采用向导生成的函数。

 

activexID.attachEvent("onXXXevent", onXXXevent);

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值