CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
IBM Rational 系统开发最佳实践工具包 WebSphere MQ 最佳实践 TOP 15
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  VC/MFC >  ATL/ActiveX/COM

关于在ActiveX里的多线程触发事件

楼主liounzhou(潇潇夜雨)2006-03-17 23:39:58 在 VC/MFC / ATL/ActiveX/COM 提问

因为工作需要用DELPHI做了一个OCX,必须要由VC来调用.在这个OCX中使用了跨线程触发事件,后来我才知道MFC并不支持这么做.  
   
  在这个OCX(ActiveXForm)里的基本流程是这样的:  
  1.首先有一个初始化的方法(这个方法在调用OCX时必须先调用),创建了一个TCP监听端口,自定义了一个接收数据事件指定给这个监听端口.  
  2.在数据接收事件中,每当接收到数据后,就创建另一个数据处理子线程,  
  3.在数据处理子线程中分析数据,如果数据符合条件就调用ActiveXForm的一个方法来触发指定的A事件.(这里的调用方式是在申明了一个全局的OCX对象.)  
   
  这整个流程在DELPHI环境下调用OCX,A事件是能够在接收到数据后正常触发的.但是在VC里则不行.我想知道应该如何修改,才能在VC里也能够触发这个事件呢?  
  (参考了一些CSDN上的相关贴子,我试过在第三步时在子线程里PostMessage给OCX窗体,窗体的句柄由FindWindow来指定,但是定义在OCX窗体里的消息处理函数并没有收到任何消息.) 问题点数:100、回复次数:3Top

1 楼jiangsheng(蒋晟.Net[MVP])回复于 2006-03-18 08:40:01 得分 0

http://www.mvps.org/vcfaq/com/1.htm  
  http://www.mvps.org/vcfaq/com/11.htmTop

2 楼liounzhou(潇潇夜雨)回复于 2006-03-20 08:18:01 得分 0

to   jiangsheng(蒋晟.Net[MVP])   :  
  你好,再三得到你的指点,非常感激。我试过那个比较简单的方式:即通过隐藏窗口,在工作线程里发送消息后,由窗口去触发事件。但窗口的消息处理函数并没有收到任何消息,是否能给出一点详细的说明?Top

3 楼gushenghua(卖天鹅肉的蛤蟆)回复于 2006-04-21 00:17:14 得分 0

那个隐藏窗口必须是在你的主线程(非工作线程)中创建的,否则就没有意义,在这个隐藏窗口的消息响应函数中再触发事件  
   
  在该种情况下你从工作线程中往隐藏窗口发消息,其实是在两个线程间发消息,sendmessage,postmessage都可以的Top

相关问题

  • 多线程触发事件的问题
  • ActiveX触发事件问题
  • Dll、多线程、事件传递
  • 关于多线程的事件问题?
  • 求救:用MFC做的多线程ActiveX控件,Fire出的事件VB调用时出错!!!!!!
  • 求救:用MFC做的多线程ActiveX控件,Fire出的事件VB调用时出错!!!!!!
  • 事件触发
  • ActiveX中多线程的应用问题
  • 不用AfxBeginThread可以使用多线程吗?只用SetEvent来触发可以不?
  • OnCalcFields事件触发

关键词

  • 线程
  • 函数
  • 消息
  • 数据
  • mvp
  • 触发
  • 事件
  • ocx
  • 调用
  • 窗体

得分解答快速导航

  • 帖主:liounzhou

相关链接

  • Visual C++类图书
  • Visual C++类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo