PostMessage和SendMessage区别
PostMessage和SendMessage区别在控制别的应用程序的时候,经常需要等待直到某个功能结束,例如:
打开一个窗口-->等待直到窗口结束
这个时候就可以用到SendMessage
如果在打开这个窗口后仍然需要对该窗口的界面进行设置,比如Edit的value等等,比如:
打开一个窗口-->控制窗口的control的属性
这个时候就需要PostMessage
使用一个钩子程序截获消息后,使用SendMessage把消息发送到主处理程序进行处理,但是在主处理程序还没有完成任务的时候,被设置钩子的程序进入了停止的状态,不可以处理
WM_PAINT,
WM_MOVE,
.......等的基本信息,
必须要等SendMessage发送出的消息完成后,才能继续运行,整个界面一片空白,把钩子消息设置成PostMessage的发送消息形式后,问题解决!
我查了MSDN对这两个API的定义,
PostMessage只是把消息放入队列,不管其他程序是否处理都返回,然后继续执行;
而SendMessage必须等待其他程序处理消息后才返回,继续执行。
PostMessage的返回值表示PostMessage函数执行是否正确;
而SendMessage的返回值表示其他程序处理消息后的返回值。
使用这两个发送消息函数的最重要的是要看你的程序是否要对消息的滞后性关注否,PostMessage会造成消息的滞后性,而SendMessage则不会,但如果SendMessage消息处理失败,则会造成程序停止!
A君问:PostMessage 和 SendMessage什么区别
B君答:
PostMessage只负责将消息放到消息队列中,不确定何时及是否处理
SendMessage要等到受到消息处理的返回码(DWord类型)后才继续
PostMessage执行后马上返回
SendMessage必须等到消息被处理后才会返回。
A君:不明白
B君:SendMessage看成ShowModal,PostMessage看成Show
A君:明白
相关推荐
PostMessage 跟 SendMessage的区别
一般来说这种Windows API在MSDN上都有比较完整的描述,这里为了巩固记忆,把他记下来 BOOL WINAPI PostMessage(HWND hwnd,UINT msg,WPARAM wParam,LPARAM lParam) 把消息分发到与创建hwnd窗口相关联的线程的消息队列上,不需要等待线程处理消息,即刻返回 MSDN: Places (posts) a
SendMessage和PostMessage发送消息(不同进程传递字符串)
一、函数功能 该函数将指定的消息发送到一个或多个窗口。此函数为指定的窗口调用窗口程序,直到窗口程序处理完消息再返回。而函数PostMessage不同,将一个消息寄送到一个线程的消息队列后立即返回。 二、函数原型 SendMessage函数的原型为 LRESULT SendMessage( HWND hWnd, UINT Msg, WPARAM wParam,
DELPHI中SendMessage详细资料
DELPHI中SendMessage详细资料,非常全面的函数资料。
Windows 窗口间的通信实验 - SendMessage 和 PostMessage 函数的区别
从逻辑上看: SendMessage函数相当于直接调用其他窗口的窗口过程来处理消息,并等待窗口过程的返回,在函数返回后,目标窗口过程必定处理了该消息。 PostMessage函数则将消息放到目标窗口的消息队列中并直接返回,函数返回后,目标窗口过程还可能没有处理到该消息。 对于普通消息来说,这两者速度差别之外其余差别不大。但是,PostMessage的参考文档明确说明,该函数不能用于任何参数...
SendMessage PostMessage 消息处理详解
1.保证无毒 2.简单,方便,实用 3.实例可以自行改用 4.如有非法,本人无法律责任,由改动代码人负责! 5.需要更多本人作品,查找标签“朱建强” 6.请下载,杀毒后再使用!
C语言 函数
一、什么是函数 二、函数的相关语法 三、函数编码规范
Delphi 7 定义你自己的消息
一个消息标识符是一个整数大小的常数。Windows自用低于1024的消息,所以当你声明你自己的消息,你应该开始高于这一数字。
从Gotham到Foundry:拆解Palantir三大产品线,看它如何用‘本体’统一企业数据与AI
本文深入解析Palantir的三大产品线Gotham、Foundry和Apollo,揭示其如何通过独特的'本体'架构实现企业数据与AI的无缝融合。从国防情报到商业决策,Palantir的产品架构展现了强大的数据整合与AI赋能能力,为企业构建数字孪生提供革命性解决方案。
Delphi7通过SendMessage来实现默认打印机的切换
具体代码 procedure SetDefaultPrinter(NewDefPrinter: string); var ResStr: array[0..255] of Char; begin StrPCopy(ResStr, NewdefPrinter); WriteProfileString('windows', 'device', ResStr)...
STorM BGC V1.31硬件+SimpleBGC固件:从零搭建三轴云台开发环境(Keil+JLink避坑指南)
本文详细介绍了如何从零搭建STorM BGC V1.31硬件+SimpleBGC固件的三轴云台开发环境,涵盖硬件连接、Keil+JLink开发工具配置、固件编译与烧录等关键步骤,并提供了常见问题的解决方案和调试技巧,帮助开发者快速上手三轴云台开发。
记录思科cisco交换机升级iso步骤
Cisco Nexus 93180交换机版本升级
delphi 中的消息(3)---SendMessage和PostMessage
上一篇文章中,按钮事件里有个 SendMessage,其实还有个PostMessage,这2个的区别是: SendMessage 等于你去点鞭炮,点完,等他爆了再走。 PostMessage 等于你去点鞭炮,不管有没有开始爆,你都闪了。 这2个方法的参数是一样的,第一个参数是一样的,看上篇 Sendmessage(self.Handle, WM_MYMSG, 0, 0); 第一个参...
科研绘图系列:R语言绘制差异蝴蝶图(Butterfly Chart)
科研绘图系列:R语言蝴蝶图(Butterfly Chart)
SendMessage和PostMessage的区别
对于SendMessage 和 PostMessage 平时口头的解释是 SendMessage 发送消息后等待返回, PostMessage 发送消息后立即返回 。 但是这样解释还是不具体,什么叫等待 什么叫立即? 下面的代码可以解释,SendMessage 必须要等到消息响应函数结束,才继续执行。 #define USER_MSG WM_USER+1 /*使用SendMessage的例子 程序执行的步骤 */ void fun() { // 第一步 SendMe...
4、风险管理、信息安全与信息管理的核心原则
本文深入探讨了风险管理、信息安全与信息管理的核心原则,涵盖Risk IT框架、ISO 31000标准以及信息安全与信息管理的关键原则。通过案例分析与实际应用挑战的解析,帮助组织更好地应对数字化时代的风险与安全问题,实现可持续发展。
【NLP】第十五章:隐马尔可夫——前向算法、后向算法、维特比算法、Baum-Welch算法
就是好比我现在知道了观测序列Observations、掩藏序列States,我试着去学一个最优的(π, A, B),让在这个(π, A, B)下,观测序列Observations、掩藏序列States的概率最大。(2)矩阵B就更好理解了,矩阵B的第一行表示我已经抽取的是盒子1,那我抽取白球的概率就是0.4,抽取黑球的概率就是0.6了,因为第一个盒子只有4白6黑嘛。三是,由于每次抽取的小球的颜色的概率不仅取决于,小球所在的盒子中的黑白球的比例,还取决于你是从哪个盒子中抽的,所以其实观测序列还对应着一个。
浅谈PostMessage与SendMessage的区别
PostMessage 概述:该函数将一个消息放入到与指定窗口创建的线程相联系消息队列里,不等待线程处理消息就返回。消息队列里的消息通过调用GetMessage和PeekMessage取得。 参数: Msg:指定被寄送的消息。 wParam:指定附加的消息特定的信息。 IParam:指定附加的消息特定的信息。 NULL:此函数的操作和调用参数。 dwThread设置为当前线程的标识符PostTh...
VTK API 详解(134):vtkOBJWriter - 写入 OBJ 模型
是 VTK 中用于将数据写入 Wavefront OBJ 文件格式的类。OBJ 格式是广泛支持的 3D 网格模型格式,支持顶点、面和基本几何信息的保存,便于模型在多种三维软件间交换。
SendMessage 和PostMessage 的区别
MFC窗口映射问题
汉书HE8,好用的汇编代码编写工具
汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大
老版QQ原生表情gif动态
这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。
SendMessage与PostMessage的区别?
SendMessage() 和PostMessage()的区别在: 1.发送消息后返回的时间.前者直到窗口执行完消息后才返回,后者向线程发送消息后没有等消息执行完就立即返回; 2.返回值的不同.前者返回的是消息的执行结果,因消息的不同而不同,后者返回值表示该函数执行的成功与否,如何PostMessage执行成功,返回非0值,失败则返回0.
廖雪峰Python教程[完整版]
廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白
sendmessage和postmessage的区别
1、POSTMESSAGE(非阻塞)与SENDMESSAGE(阻塞) 区别1:返回时间不同 PostMessage发送消息后就立即返回 SendMessage发送消息后,等待消息处理函数处理完后才返回。 区别2:返回值不同 从函数定义上来看,PostMessage的返回值是BOOL, 意思是返回非0值,消息执行成功,返回0,执行不成功。 SendMessage的返回值是LRESULT
lwip-2.0.3
lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。
SendMessage 和 PostMessage 的区别
SendMessage 和 PostMessage 的区别2007年02月06日 星期二 10:15 1、首先是返回值意义的区别,我们先看一下 MSDN 里的声明: LRESULT SendMessage( HWND hWnd,
PostMessage与SendMessage的区别
在做基于窗口的Windows程序的时候,我们避免不了要向窗口发送消息,有两种方式,一种是PostMessage,另外一种是SendMessage。关于这两个宏,我是通过狠狠的看MSDN才搞明白的,那里讲的是最权威的。它们的区别如下:1、PostMessage会将消息压入窗口所在线程的消息队列,然后返回;而SendMessage则不经过消息队列,SendMessage可认为是直接调用了该窗
PostMessage, SendMessage 之区别
PostMessage马上返回而 SendMessage等待发送消息的被处理后才返回 ----------------------------------------------------------- Paul DiLascia Download the
480



被折叠的 条评论
为什么被折叠?



