SendMessage 和 SendMessageTimeout 可能存在异常(除超时)
2016-02-22 10:48
281 查看
SendMessage 和 SendMessageTimeout 除了超时外可能存在异常,前段时间与第三方合作时,发现其用 SendMessageTimeout 发送的信息在我的程序中,PreTranslateMessage 无法收到。以前偶写过如下链接的文章,发现与现在的可能存在不一致。当然,以前未试过 SendMessageTimeout。
SendMessage() 发出的消息 PreTranslateMessage() 不一定能接收到!
在 XX 项目时,与 YY 管理程序配合,YY 管理程序是一个单独的 EXE 文件。
由一个 MFC 程序在窗体初始化时使用函数 CreateProcess() 来运行 YY 管理程序。
YY 管理程序发送消息的方式是调用函数:SendMessageTimeout()。
此 MFC 程序负责接收无线管理程序返回的消息。发现 YY 管理程序发送的消息无法在 PreTranslateMessage() 中被接收到。
在窗体的消息映射机制中,可以接收到其发送的消息。
按以前的理解,只要不是发送到本窗体的消息,PreTranslateMessage() 都应该可以处理到。
显然 YY 管理程序与此 MFC 程序是不同两个进程,在 MFC 程序的 PreTranslateMessage() 应该可以接收到 YY 管理程序发送的消息。
但以上事实说明不是这样的!
SendMessage() 发出的消息 PreTranslateMessage() 不一定能接收到!
在 XX 项目时,与 YY 管理程序配合,YY 管理程序是一个单独的 EXE 文件。
由一个 MFC 程序在窗体初始化时使用函数 CreateProcess() 来运行 YY 管理程序。
YY 管理程序发送消息的方式是调用函数:SendMessageTimeout()。
此 MFC 程序负责接收无线管理程序返回的消息。发现 YY 管理程序发送的消息无法在 PreTranslateMessage() 中被接收到。
在窗体的消息映射机制中,可以接收到其发送的消息。
按以前的理解,只要不是发送到本窗体的消息,PreTranslateMessage() 都应该可以处理到。
显然 YY 管理程序与此 MFC 程序是不同两个进程,在 MFC 程序的 PreTranslateMessage() 应该可以接收到 YY 管理程序发送的消息。
但以上事实说明不是这样的!
相关文章推荐
- 如何快速掌握MindMapper分类排序功能
- zabbix服务端以及客户端的安装
- group群组的使用
- 使用Json字符串对model对象赋值
- CXF+Spring+Tomcat 案例
- request接收表单提交中文参数乱码问题
- 通信框架AKKA介绍
- HDU4506之快速幂取模理解
- mysql中int、bigint、smallint 和 tinyint的区别详细介绍
- 虚拟化:搭建本地虚拟化环境和安装ubuntu操作系统
- Ubuntu 14和 Win7 下NFS服务器与客户端配置(Ubuntu 14.04.02)
- Linux.BackDoor.MrBlack Attack And Defense Analysis
- Java基本类型变量和包装类之间转换
- Spring事务配置的五种方式
- linux命令之cut命令的用法
- 一次共享池争用方面的问题处理
- 关于php运行其他语言(笔记)
- C++学习之模板篇(类模板)
- [BZOJ3999] [TJOI2015]旅游
- NFS文件系统初识