PostMessage和SendMessage区别

SendMessage与PostMessage的区别 简介 Send有发送的意思,而Post具有投寄的意思。 联想一下现实生活中我们写信(很久很久以前。。。。)来记就很简单了:  Send:  相当于邮寄员,他会将快件亲手交给收件人,并且需要收件人签字,他才闪人。而在消息机制中,就是说,系统(邮寄员)会将收到的消息(邮局分发)直接发送到某个窗口的窗口过程(收件人),并且需要该窗口作出处理(收件人签字)才返回。 这东东就是SendMes 阅读详情

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君:明白

浅析SendMessage与PostMessage的区别 SendMessage与PostMessage的区别应该是面试中经常问到的问题,我们可能只会简单用两句话来描述二者的区别。今天就二者的区别做一个深入的分析。按照国际惯例,msdn上这样描述SendMessage:Sends the specified message to a window or windows. The SendMessage function calls the window p 阅读详情

相关推荐

PostMessage 跟 SendMessage的区别

一般来说这种Windows API在MSDN上都有比较完整的描述,这里为了巩固记忆,把他记下来 BOOL WINAPI PostMessage(HWND hwnd,UINT msg,WPARAM wParam,LPARAM lParam) 把消息分发到与创建hwnd窗口相关联的线程的消息队列上,不需要等待线程处理消息,即刻返回         MSDN: Places (posts) a

tianminghahaha的专栏 480

SendMessage和PostMessage发送消息(不同进程传递字符串)

一、函数功能 该函数将指定的消息发送到一个或多个窗口。此函数为指定的窗口调用窗口程序,直到窗口程序处理完消息再返回。而函数PostMessage不同,将一个消息寄送到一个线程的消息队列后立即返回。 二、函数原型 SendMessage函数的原型为 LRESULT SendMessage(   HWND hWnd,   UINT Msg,   WPARAM wParam,

程序道 -Learning, Thinking and Coding <存储知识的金库> 1万+

DELPHI中SendMessage详细资料

DELPHI中SendMessage详细资料,非常全面的函数资料。

Windows 窗口间的通信实验 - SendMessage 和 PostMessage 函数的区别

从逻辑上看: SendMessage函数相当于直接调用其他窗口的窗口过程来处理消息,并等待窗口过程的返回,在函数返回后,目标窗口过程必定处理了该消息。 PostMessage函数则将消息放到目标窗口的消息队列中并直接返回,函数返回后,目标窗口过程还可能没有处理到该消息。 对于普通消息来说,这两者速度差别之外其余差别不大。但是,PostMessage的参考文档明确说明,该函数不能用于任何参数...

OneTrianee的博客 585

SendMessage PostMessage 消息处理详解

1.保证无毒 2.简单,方便,实用 3.实例可以自行改用 4.如有非法,本人无法律责任,由改动代码人负责! 5.需要更多本人作品,查找标签“朱建强” 6.请下载,杀毒后再使用!

C语言 函数

一、什么是函数 二、函数的相关语法 三、函数编码规范

m0_57105760的博客 1890

Delphi 7 定义你自己的消息

一个消息标识符是一个整数大小的常数。Windows自用低于1024的消息,所以当你声明你自己的消息,你应该开始高于这一数字。

无幻 4999

从Gotham到Foundry:拆解Palantir三大产品线,看它如何用‘本体’统一企业数据与AI

本文深入解析Palantir的三大产品线Gotham、Foundry和Apollo,揭示其如何通过独特的'本体'架构实现企业数据与AI的无缝融合。从国防情报到商业决策,Palantir的产品架构展现了强大的数据整合与AI赋能能力,为企业构建数字孪生提供革命性解决方案。

weixin_30823001的博客 321

Delphi7通过SendMessage来实现默认打印机的切换

具体代码 procedure SetDefaultPrinter(NewDefPrinter: string); var ResStr: array[0..255] of Char; begin StrPCopy(ResStr, NewdefPrinter); WriteProfileString('windows', 'device', ResStr)...

ajuvfe4150的博客 162

STorM BGC V1.31硬件+SimpleBGC固件:从零搭建三轴云台开发环境(Keil+JLink避坑指南)

本文详细介绍了如何从零搭建STorM BGC V1.31硬件+SimpleBGC固件的三轴云台开发环境,涵盖硬件连接、Keil+JLink开发工具配置、固件编译与烧录等关键步骤,并提供了常见问题的解决方案和调试技巧,帮助开发者快速上手三轴云台开发。

weixin_28693683的博客 380

记录思科cisco交换机升级iso步骤

Cisco Nexus 93180交换机版本升级

a635161812的博客 4376

delphi 中的消息(3)---SendMessage和PostMessage

上一篇文章中,按钮事件里有个 SendMessage,其实还有个PostMessage,这2个的区别是: SendMessage 等于你去点鞭炮,点完,等他爆了再走。 PostMessage 等于你去点鞭炮,不管有没有开始爆,你都闪了。 这2个方法的参数是一样的,第一个参数是一样的,看上篇 Sendmessage(self.Handle, WM_MYMSG, 0, 0); 第一个参...

weixin_34067102的博客 576

科研绘图系列:R语言绘制差异蝴蝶图(Butterfly Chart)

科研绘图系列:R语言蝴蝶图(Butterfly Chart)

专注生信领域 1390

SendMessage和PostMessage的区别

对于SendMessage 和 PostMessage 平时口头的解释是 SendMessage 发送消息后等待返回, PostMessage 发送消息后立即返回 。 但是这样解释还是不具体,什么叫等待 什么叫立即? 下面的代码可以解释,SendMessage 必须要等到消息响应函数结束,才继续执行。 #define USER_MSG WM_USER+1 /*使用SendMessage的例子 程序执行的步骤 */ void fun() { // 第一步 SendMe...

心情第一 873

4、风险管理、信息安全与信息管理的核心原则

本文深入探讨了风险管理、信息安全与信息管理的核心原则,涵盖Risk IT框架、ISO 31000标准以及信息安全与信息管理的关键原则。通过案例分析与实际应用挑战的解析,帮助组织更好地应对数字化时代的风险与安全问题,实现可持续发展。

bread的博客 120

【NLP】第十五章:隐马尔可夫——前向算法、后向算法、维特比算法、Baum-Welch算法

就是好比我现在知道了观测序列Observations、掩藏序列States,我试着去学一个最优的(π, A, B),让在这个(π, A, B)下,观测序列Observations、掩藏序列States的概率最大。(2)矩阵B就更好理解了,矩阵B的第一行表示我已经抽取的是盒子1,那我抽取白球的概率就是0.4,抽取黑球的概率就是0.6了,因为第一个盒子只有4白6黑嘛。三是,由于每次抽取的小球的颜色的概率不仅取决于,小球所在的盒子中的黑白球的比例,还取决于你是从哪个盒子中抽的,所以其实观测序列还对应着一个。

因为热爱所以坚持 1162

浅谈PostMessage与SendMessage的区别

PostMessage 概述:该函数将一个消息放入到与指定窗口创建的线程相联系消息队列里,不等待线程处理消息就返回。消息队列里的消息通过调用GetMessage和PeekMessage取得。 参数: Msg:指定被寄送的消息。 wParam:指定附加的消息特定的信息。 IParam:指定附加的消息特定的信息。 NULL:此函数的操作和调用参数。 dwThread设置为当前线程的标识符PostTh...

qq_38944603的博客 1211

VTK API 详解(134):vtkOBJWriter - 写入 OBJ 模型

是 VTK 中用于将数据写入 Wavefront OBJ 文件格式的类。OBJ 格式是广泛支持的 3D 网格模型格式,支持顶点、面和基本几何信息的保存,便于模型在多种三维软件间交换。

yumeiguo的博客 140

SendMessage 和PostMessage 的区别

MFC窗口映射问题

Serven的博客 1万+

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

SendMessage与PostMessage的区别?

     SendMessage() 和PostMessage()的区别在:     1.发送消息后返回的时间.前者直到窗口执行完消息后才返回,后者向线程发送消息后没有等消息执行完就立即返回;      2.返回值的不同.前者返回的是消息的执行结果,因消息的不同而不同,后者返回值表示该函数执行的成功与否,如何PostMessage执行成功,返回非0值,失败则返回0.      

1759

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

sendmessage和postmessage的区别

1、POSTMESSAGE(非阻塞)与SENDMESSAGE(阻塞) 区别1:返回时间不同 PostMessage发送消息后就立即返回 SendMessage发送消息后,等待消息处理函数处理完后才返回。 区别2:返回值不同 从函数定义上来看,PostMessage的返回值是BOOL, 意思是返回非0值,消息执行成功,返回0,执行不成功。 SendMessage的返回值是LRESULT

qq2669573897的专栏 4969

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,  

zz123438的专栏 1381

PostMessage与SendMessage的区别

   在做基于窗口的Windows程序的时候,我们避免不了要向窗口发送消息,有两种方式,一种是PostMessage,另外一种是SendMessage。关于这两个宏,我是通过狠狠的看MSDN才搞明白的,那里讲的是最权威的。它们的区别如下:1、PostMessage会将消息压入窗口所在线程的消息队列,然后返回;而SendMessage则不经过消息队列,SendMessage可认为是直接调用了该窗

从不轻言放弃 6516

PostMessage, SendMessage 之区别

PostMessage马上返回而   SendMessage等待发送消息的被处理后才返回 ----------------------------------------------------------- Paul DiLascia Download the

饿的神啊 2835
上一篇: GetNextKey
Delphi79
博客等级 码龄17年 6粉丝 14原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值