问题背景:

MFC开发ocx控件,主窗口就是ctrl类,主窗口类中调度接口和事件映射添加,执行OK,外部html容器中接收事件成功,如下:

ctrl.h中声明事件映射函数

void EVTPENSIGNMSG(SHORT code, LPCTSTR result)
{
FireEvent(eventidEVTPENSIGNMSG, EVENT_PARAM(VTS_I2 VTS_BSTR), code, result);
}

ctrl.cpp中调用事件映射函数

int nTmp = 1;
CString strTmp= "completeSign";
EVTPENSIGNMSG(nTmp,strTmp);

<!--html中接收控件事件-->
<script language=javascript for=amPenSigner event=EVTPENSIGNMSG(code,result)>
alert(code);
alert(result);
</script>

但是我再ctrl主窗口类中创建一个子线程,然后在子线程函数中调用事件映射函数,外部html容器就收不到事件了,怎么办?

这是因为ocx控件只能主窗口给外部容器发事件,所以在子线程中应该先将消息发到主窗口,然后主窗口去发事件。

问题解决:

但是子线程给主窗口发送消息,还有个坑,就是要使用PoseMessage()函数。

SendMessage()函数的话,就会显示一切正常,甚至事件映射函数执行成功,但是外部容器就是接受不到事件,这是因为SendMessage()是同步函数,所以此时还是相当于子线程给外部抛事件,那肯定就成功不了。

转载于:https://www.cnblogs.com/jieliujas/p/9169121.html

MFC中开发ocx控件,html容器收不到ocx的事件Event相关推荐

  1. MFC中动态创建控件以及事件响应实现方法

    本文实例讲述了MFC中动态创建控件以及事件响应实现方法,分享给大家供大家参考.具体实现方法如下: 动态控件是指在需要时由Create()创建的控件,这与预先在对话框中放置的控件是不同的. 一.创建动态 ...

  2. MFC中动态创建控件以及添加事件响应

    本文实例讲述了MFC中动态创建控件以及事件响应实现方法,分享给大家供大家参考.具体实现方法如下: 动态控件是指在需要时由Create()创建的控件,这与预先在对话框中放置的控件是不同的. 一.创建动态 ...

  3. MFC中的edit控件

    edit control 编辑框 static control 静态文本框控件 Button 按钮控件 第一步,在VS2019中新建一个MFC项目: 第二步,打开资源视图,双击打开窗口,在工具栏中选择 ...

  4. MFC中动态创建控件及添加消息响应的方法实例

    动态控件是指在需要时由Create()创建的控件,这与预先在对话框中放置的控件是不同的. 一.创建动态控件: 为了对照,我们先来看一下静态控件的创建. 放置静态控件时必须先建立一个容器,一般是对话框, ...

  5. VC/MFC中的CComboBox控件使用详解

    CComboBox控件详解 CComboBox控件又称作组合框控件,其有三种形态可供选择,1.简单组合框(Simple)2.下拉组合框(Drop-down)3.下拉列表式组合框(Drop-down l ...

  6. 在MFC中怎么样让控件的大小随着主窗体大小改变而改变

    转载:https://blog.csdn.net/business122/article/details/11611421 MFC控件随着窗口大小变化VC++ 刚接触MFC不久,对MFC的许多函数和功 ...

  7. MFC中进度条控件的使用方法

    进度条控件是程序开发中基础控件之一,常用于显示程序的进度.在进行程序安装.文件传输时经常用到.其用法也比较简单固定. 转自:http://jingyan.baidu.com/article/95c9d ...

  8. MFC中访问界面控件的两种方法

    1.在资源中创建一个对话框资源,放置一些控件,然后使用类向导创建一个此对话框类型的变量,项目中会自动创建此对话框的.h和.cpp文件. 有两种方式可在代码中访问控件. (1)如果在代码中直接访问,则使 ...

  9. MFC中如何给控件关联变量

    如图所示,在对话框中新建了一个Slider控件(IDC_Slider_test).现在想要给该控件关联一个变量,有两种方法. 一.通过对话框添加控件关联变量: 1. 首先为对话框添加类CDlgTest ...

  10. MFC中Tab Control控件的使用

    一.创建TabControl控件主要分为以下步骤 1.1将TabControl控件拖入基本对话框中,并且创建一个控件变量m_tab 1.2创建两个子对话框,ID分别改为IDD_DIALOG_PAGE1 ...

最新文章

  1. TensorFlow下的基础命令语句:数组、字典、判断、循环、与函数
  2. 基本表改变视图不改变为什么_中国白酒包装是真的很丑吗,为什么不改变包装?...
  3. 使用交换机的dhcp snooping拒绝非法dhcp服务
  4. python prophet 预言家预知未来
  5. Flask项目常见面试问题
  6. ORACLE 11G EXP导出空表方法
  7. 字符串里解析vue表达式
  8. python调参工作都是干啥的_Python中Gradient Boosting Machine(GBM)调参方法详解
  9. 前端学习(1886)vue之电商管理系统电商系统之首页路由的重定向主页侧边栏路由链接的改造
  10. 得到当前选中行的第几列的值---dataGridView
  11. code第一部分数组:从有序数组中移除重复的数据
  12. Thread线程notify方法的自我理解
  13. zynq以太网官网例子调试
  14. 计算机程序考试试题及答案,计算机程序员考试试题及答案.doc
  15. 苹果手机打电话没有声音怎么回事_网页看视频没有声音怎么回事?
  16. opencv录制视频进行保存
  17. 南开计算机学院网络安全,程明明 - 南开大学 - 网络空间安全学院
  18. ac1900修改代理服务器,AC1900路由器怎么设置? | 192路由网
  19. android监听器作用,Android 事件与事件监听器
  20. CentOS7.6 安装配置Amber18/AmberTools18(GPU加速版)

热门文章

  1. php 添加 redis 扩展模块
  2. couchbase php,升级PHP7时couchbase扩展导入的bug
  3. 线性表:4.结合顺序表和链表——静态链表及C语言实现
  4. unix和linux的区别
  5. 复数乘法_初学讲义之高中数学十八:复数
  6. wampserver橙色如何变成绿色_绿色配什么颜色好看 家居绿色配色小技巧-装修攻略...
  7. 我参与的一个x86平台项目的经历
  8. 【Elasticsearch】如何在Elasticsearch中使用排名评估API
  9. 【Elasticsearch】我们如何将 100 秒的 elasticsearch 查询优化为不到一秒。
  10. 【前端】设计更好的数据表