VC 2005 VC2008 VC 2010 ACTIVEX 事件 EVENT
2010-11-25 18:12
337 查看
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整数值,此event的ID
2、在XXCtrl.h文件的enum下 添加 eventidEventName = intValue
3、在XXCtrl.h文件控件类下添加函数
void EventName()
{
FireEvent(eventidEventName, EVENT_PARAM(VTS_NONE));
}
4、在XXCtrl.cpp文件的BEGIN_EVENT_MAP和END_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);
}
4、EVENT_CUSTOM_ID("EventName", eventidEventName, EventName, VTS_BSTR VTS_I4)
方法就采用向导自己生成,包括返回值给JS都可以采用向导生成的函数。
activexID.attachEvent("onXXXevent", onXXXevent);
由于vc2005在开发activex中有bug,(向导不能生成event),在使用时不能自己封装activex控件类,下面把开发过程
总结如下:
生成event:
1、 在*.idl文件的dispinterface _DXXEvents 的methods: 下添加 //XX:activex控件名
[id(intValue)] void EventName(); //intValue整数值,此event的ID
2、在XXCtrl.h文件的enum下 添加 eventidEventName = intValue
3、在XXCtrl.h文件控件类下添加函数
void EventName()
{
FireEvent(eventidEventName, EVENT_PARAM(VTS_NONE));
}
4、在XXCtrl.cpp文件的BEGIN_EVENT_MAP和END_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);
}
4、EVENT_CUSTOM_ID("EventName", eventidEventName, EventName, VTS_BSTR VTS_I4)
方法就采用向导自己生成,包括返回值给JS都可以采用向导生成的函数。
activexID.attachEvent("onXXXevent", onXXXevent);
相关文章推荐
- VC运行库合集下载,含VC2005/2008/2010/2012/2013
- Win10 VC++运行库集合|VC++ 2005 2008 2010 2012 2015
- 使用VC2005/2008/2010编写的程用程序 部署时不需要安装运行库的方法
- 使用VC2005/2008/2010编写的程用程序 部署时不需要安装运行库的方法
- VC2010如何给ActiveX添加事件
- VC2010如何给ActiveX添加事件
- vc 2005 2008 2010 安装ie8后不能添加控件变量解决方法
- VC2005 和 VC2008 类向导脚本运行错误
- VS 2005 / 2008 / 2010 能否继续使用 ASP.NET 1.x版的DataGrid ????
- Visual Studio 2005/2008/2010 常用快捷键
- VC2005从开发MFC ActiveX ocx控件到发布到.net网站的全部过程
- Prebuild Command line(Copy) . vc2008预生成事件和生成后事件的用法
- VS2005 VS2008 VC2008 2005断点无效-源代码与原始版本不同
- OpenCV 2.3.x/2.4.x在Visual Studio 2005/2008、Visual Studio 2010和Visual Studio 2012配置方法详解
- VC 2005 & VC 2008 error C2220: warning treated as error - no object file generated
- VS2005 菜单项添加事件 VC2005消息映射
- 用 VC++ 2005 建立ActiveX
- VC2010创建基于对话框MFCActiveX 备忘
- VC2005从开发MFC ActiveX ocx控件到发布到.net网站的全部过程
- [转]VC2005从开发MFC ActiveX ocx控件到发布到.net网站的全部过程