社区
ATL
帖子详情
在ActiveX控件中使用多线程后Fire事件的问题
nokialiu
2005-04-29 09:34:57
由于种种原因,在控件中使用了多线程但是当使用子线程Fire事件时遇到了问题.如果控件容器(VB)处理了该事件那么必然会unhandle,而不处理或者在接口调用的地方直接返回事件则没有问题.
那么问题是,当我不得不在子线程中触发事件的话,应该如何处理???
...全文
149
8
打赏
收藏
在ActiveX控件中使用多线程后Fire事件的问题
由于种种原因,在控件中使用了多线程但是当使用子线程Fire事件时遇到了问题.如果控件容器(VB)处理了该事件那么必然会unhandle,而不处理或者在接口调用的地方直接返回事件则没有问题. 那么问题是,当我不得不在子线程中触发事件的话,应该如何处理???
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
8 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
feelmoon
2005-05-24
打赏
举报
回复
http://support.microsoft.com/kb/q280512/#appliesto
看看这篇文章,你就知道怎么做了。
记得,在线程中要调用
HRESULT hRes = CoInitializeEx(NULL, COINIT_MULTITHREADED);
。。。。
::CoUninitialize ();
Sander
2005-05-24
打赏
举报
回复
我在ActiveX control test container 测试都可以
pCtrl->Fire();
pCtrl->Postmessage();
听说在IE中,前者不行,不知道是不是
lippens
2005-04-29
打赏
举报
回复
pCtrl->PostMessage
lippens
2005-04-29
打赏
举报
回复
ATL: 要是用Marshal的话简单就简单一点,增加一个接口(A),并在接口里面调用控件的fire event,然后marshal到一个IStream里,做为参数传递给子线程就可以了,子线程收到事件调用A的方法就可以正常fire event了;如果是要用事件,又没有窗口的话,就自己定义一个窗口类的友元,将container设为控件,并将该窗口类的hwnd传给子线程,子线程收到事件,就给这个窗口类发消息,窗口类再个别处理fire event就ok了
MFC: 直接对控件postmessage就可以了
nokialiu
2005-04-29
打赏
举报
回复
MFC
lippens
2005-04-29
打赏
举报
回复
你是用MFC的还是ATL的?
nokialiu
2005-04-29
打赏
举报
回复
我也试过向窗口投递消息来解决,但是问题每次通过AfxGetMainWnd()->GetSaveHwnd()得出的句柄都是空,所以postmessage都无法收到处理.这个窗口问题又如何解决呢?
lippens
2005-04-29
打赏
举报
回复
1. Marshall隐藏接口,在接口中fire事件
2. 向控件的窗口发消息,在消息处理中fire事件
项目实战:Java Applet与
ActiveX
控件
应用
控件
技术是B/S项目的开发手段,在项目实战
中
非常重要! 作为一个程序员和架构师,掌握
控件
的开发和集成技术,是必须的技能; 浏览器
中
显示的内容主要是标签,当需要复杂操作时,
控件
技术是超越标签、给B/S项目扩展...
用MFC开发
ActiveX
控件
详解
前言
ActiveX
控件
是一种实现了一系列特定接口而使其在
使用
和外观上更象一个
控件
的COM组件。
ActiveX
控件
这种技术涉及到了几乎所有的COM和OLE的技术精华,如可链接对象、统一数据传输、OLE文档、属性页、永久存储以及...
COM组件开发实践(八)---
多线程
ActiveX
控件
和自动调整
ActiveX
控件
大小(下)
源代码下载:My
ActiveX
20081229.rar 声明:本文代码基于CodeProject的文章《A Complete
ActiveX
Web ... 在上一篇文章《COM组件开发实践(七)---
多线程
ActiveX
控件
和自动调整
ActiveX
控件
大小(上)》
中
介绍了Ac...
COM组件开发实践(七)---
多线程
ActiveX
控件
和自动调整
ActiveX
控件
大小(上)
声明:本文代码基于CodeProject的文章《A Complete
ActiveX
Web Control Tutorial》修改...最近遇到两个需求:1)在
ActiveX
控件
中
使用
工作线程来完成底层的硬件设备扫描任务,并在工作线程
中
根据操作结果回调外部web...
使用
ATL开发
ActiveX
控件
本文描述了
使用
ATL开发一个
ActiveX
控件
的完整过程。 一、创建项目 单击起始页
中
的“New Project…”,选择“ATL”分类下的“ATL Project”项目,项目名称为“Calculator”。在随后出现的项目向导
中
,
使用
默认配置...
ATL
3,245
社区成员
48,539
社区内容
发帖
与我相关
我的任务
ATL
ATL,Active Template Library活动(动态)模板库,是一种微软程序库,支持利用C++语言编写ASP代码以及其它ActiveX程序。
复制链接
扫一扫
分享
社区描述
ATL,Active Template Library活动(动态)模板库,是一种微软程序库,支持利用C++语言编写ASP代码以及其它ActiveX程序。
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章