sendmessage与postmessage(PostMessage和SendMessage有什么区别)

2024-08-17 12:55:20 2

sendmessage与postmessage(PostMessage和SendMessage有什么区别)

其实sendmessage与postmessage的问题并不复杂,但是又很多的朋友都不太了解PostMessage和SendMessage有什么区别,因此呢,今天小编就来为大家分享sendmessage与postmessage的一些知识,希望可以帮助到大家,下面我们一起来看看这个问题的分析吧!

本文目录

PostMessage和SendMessage有什么区别

其实你在网上搜索一下就可以找到很多答案!难道网上的回答都满足不了你,那你指望我们就能让你理解吗?我把我的理解说一下,希望你懂。1.SendMessage你就把他理解为调用窗口过程函数即可。LRESULT CALLBACK WindowProc(HWND hWnd,UINT message,WPARAM wParam,LPARAM lParam)这个好懂吧!把他们等同即可,SendMessage就是 调用WindowProc,SendMessage的返回值就是WindowProc的返回值。2。PostMessage就比较麻烦。PostMessage后,系统会把消息放在程序的消息队列。之后消息循环(这个在win32程序经常看到的)While(GetMessage(。。。。)){ 。。。。 DispatchMessage(。。。);}GetMessage会获取到这个消息。(对于很多初学者来说这个GetMessage确实不要理解,因为它跟我们平常的程序代码执行思想很不同。Getmessage有时会堵塞,程序会停在那里。它什么时候被调用,谁调用它呢?--其实这都是系统的事,系统发现程序的消息队列有消息了,就会让你的程序调用Getmessage,把消息取出来,while循环继续执行,到DispatchMessage时就可以把它等同于调用窗口过程函数WindowProc了。整理一下思路就是:PostMessage=消息进入消息队列-》GetMessage把消息取出来-》程序执行到DispatchMessage-》DispatchMessage就相当于调用窗口过程函数了所以2个函数最后都会去调用窗口过程函数,只是PostMessage调用前要经历一些“曲折”的步骤。

VC中SendMessage和PostMessage的区别

1、PostMessage会将消息压入窗口所在线程的消息队列,然后返回;而SendMessage则不经过消息队列,SendMessage可认为是直接调用了该窗口的窗口过程,因此在我们需要获得消息处理后的返回值的时候,就要用到SendMessage。例如:当在程序中指定如下使用:PostMessage(hWnd, WM_MSG,0,0),那么当程序执行到PostMessage的时候,仅将消息WM_MSG压入到创建hWnd所指窗口的那个线程的消息队列,然后程序将继续执行下去,而至于程序什么时候响应该消息,则要看那个线程什么时候得到控制权;而指定如下使用:SendMessage(hWnd, WM_MSG,0,0),那么当程序执行到该处时,将发生一次跳转:从当前位置,跳转到hWnd的窗口过程中去响应WM_MSG消息,当消息处理结束,窗口过程返回,程序又将从SendMessage后面继续执行,当然,我们可以获得窗口过程对该消息的处理结果,也即取SendMessage的返回值。(这里只是针对单线程)。2、在多线程应用中,PostMessage的用法还是一样,但SendMessage则不同了。如果在线程A中向线程B所创建的一个窗口hWndB发送消息SendMessage(hWndB,WM_MSG,0,0),那么系统将会立即将执行权从线程A切换到线程B,然后在线程B中调用hWndB的窗口过程来处理消息,并且在处理完该消息后,执行权仍然在B手中!这个时候,线程A则暂停在SendMessage处,等待下次线程A获得执行权后才继续执行,并且仍然可以获得消息处理的结果(返回值)。一般,为了避免死锁,在B中对WM_MSG做出处理之前,要加上: if(InSendMessage())RelpyMessage(lResult);即判断:如果该消息是发自另外一个线程,则立即 RelpyMessage,回复消息,参数lResult即是返回值。而如果是在同一个线程内,则InSendMessage()将会返回FALSE。

SendMessage和PostMessage 的区别 PreTranslateMessage

说说区别 PostMessage只负责将消息放到消息队列中,不确定何时及是否处理SendMessage要等到受到消息处理的返回码(DWord类型)后才继续PostMessage执行后马上返回SendMessage必须等到消息被处理后才会返回。

sendmessage与postmessage有什么区别

看时间过去好久了。楼上都说的很好了,再给你形象的解释下,为后来人解读下把。。 PostMessage 和SendMessage的区别主要在于是否等待其他程序消息处理。PostMessage只是把消息放入队列,不管其他程序是否处理都返回,然后继续执行;而SendMessage必须等待其他程序处理消息后才返回,继续执行。这两个函数的返回值也不同,PostMessage的返回值表示PostMessage函数执行是否正确----BOOL,而SendMessage的返回值表示其他程序处理消息后的返回值---LRESULT。 PostMessage 是将消息发送到窗口的消息队列中,然后立即返回 SendMessage是将消息发送到窗口函数,在窗口函数处理完消息后才返回。 所以,PostMessage 是异步处理,而SendMessage是同步处理 先来看看Send与Post这两个英文单词的意思:Send有发送的意思,而Post具有投寄的意思。联想一下现实生活中我们写信(很久很久以前。。。。)来记就很简单了:Send: 相当于邮寄员,他会将快件亲手交给收件人,并且需要收件人签字,他才闪人。而在消息机制中,就是说,系统(邮寄员)会将收到的消息(邮局分发)直接发送到某个窗口的窗口过程(收件人),并且需要该窗口作出处理(收件人签字)才返回。 这东东就是SendMessagePost: 相当于邮局、邮筒等等,我们写好信好,会将信交给邮局,或投寄到邮筒里,而什么时候发送,发送到哪里都由邮局来处理,我们投寄信件的时候,是不会等候这封信件到达收件人手里,然后才回家的。 而在消息机制中,就是说,系统(我们)将收到的消息(信件)投寄到应用程序的消息循环(相当于邮筒)中,然后就闪人,具体啥时候处理这条消息(啥时候发送邮件),那就得看“办事效率”了。区别很明显,SendMessage的消息是不进队列的,而PostMessage的需要排队。 但,值得说明的是:虽然一个要进队,一个不进队,但是最终处理消息的地方都一样:都是系统调用窗口过程进行处理(收件人作出反应)

关于本次sendmessage与postmessage和PostMessage和SendMessage有什么区别的问题分享到这里就结束了,如果解决了您的问题,我们非常高兴。

sendmessage与postmessage(PostMessage和SendMessage有什么区别)

本文编辑:admin

更多文章:


戴尔客服电话(戴尔售后24小时人工客服)

戴尔客服电话(戴尔售后24小时人工客服)

戴尔售后24小时人工客服“戴尔售后24小时人工客服”是指戴尔公司提供的全天候人工客服服务,以下是关于该服务的详细解释:1. 服务时间: * 24小时无间断:这意味着无论何时何地,只要您遇到与戴尔产品相关的问题或需要技术支持,都可以随时联系

2024年7月11日 00:56

x61s(x61升级固态硬盘)

x61s(x61升级固态硬盘)

x61升级固态硬盘“X61升级固态硬盘”是指对一款型号为X61的笔记本电脑进行固态硬盘(SSD)的升级操作。以下是关于这个主题的详细解释:一、为什么要升级固态硬盘?升级固态硬盘的主要目的是提高电脑的性能。相较于传统的机械硬盘,固态硬盘在读写

2024年7月25日 20:46

锋锐s40h(锋锐S40H)

锋锐s40h(锋锐S40H)

锋锐S40H“锋锐S40H”可能是一个产品型号或品牌名称,但具体信息需要更详细的上下文来确定。不过,我可以尝试从一般意义上为你解释一下可能的相关内容。1. 产品或品牌:首先,“锋锐S40H”可能是一个产品型号或品牌名称,可能属于某个电子、家

2024年7月25日 15:41

索尼电脑(索尼电脑笔记本)

索尼电脑(索尼电脑笔记本)

索尼电脑笔记本关于“索尼电脑笔记本”的相关内容,以下是一些条理清晰的解释:一、品牌概述索尼电脑笔记本,简称“索尼笔记本”,是日本电子巨头索尼公司推出的一款笔记本电脑产品。该产品以其时尚的外观设计和出色的性能,在市场上拥有一定的知名度和用户群

2024年7月23日 20:36

r518(r518制冷剂)

r518(r518制冷剂)

r518制冷剂R518制冷剂是一种制冷剂,也被称为R518A或R518B,属于氟碳化合物制冷剂。以下是关于R518制冷剂的相关内容:1. 化学性质:R518是一种HFC(无氟烃)型制冷剂,不含有对大气臭氧层有破坏作用的氯原子。它的主要化学成

2024年7月26日 08:26

联想最新台式电脑(联想最新台式电脑型号)

联想最新台式电脑(联想最新台式电脑型号)

联想最新台式电脑型号联想(Lenovo)是一家全球知名的电脑制造商,其台式电脑型号众多,覆盖了不同的用户需求和预算范围。以下是关于“联想最新台式电脑型号”的相关内容条理化解释:一、最新台式电脑型号概述联想最新的台式电脑型号通常代表着该品牌最

2024年7月7日 05:46

海尔w12(海尔w12笔记本)

海尔w12(海尔w12笔记本)

海尔w12笔记本关于“海尔W12笔记本”的相关内容,以下是一些条理清晰的解释:1. 品牌:海尔W12笔记本属于海尔集团的产品。海尔集团是一家全球知名的电子产品和家电制造商,其产品线包括电脑、电视、冰箱、洗衣机等。2. 类型:W12通常指的是

2024年7月28日 15:31

戴尔(戴尔官网)

戴尔(戴尔官网)

戴尔官网“戴尔官网”是戴尔(Dell)公司的官方网站,提供有关其产品和服务的信息。以下是关于“戴尔官网”的详细解释:1. 网站内容: - 产品信息:戴尔官网提供了各种电脑产品信息,包括笔记本电脑、台式机、工作站、服务器等。每个产品都有详

2024年7月10日 03:31

笔记本散热底座有用吗(笔记本散热底座有用吗?)

笔记本散热底座有用吗(笔记本散热底座有用吗?)

笔记本散热底座有用吗?笔记本散热底座对于笔记本电脑的散热是有用的。以下是关于笔记本散热底座的详细解释:1. 定义与作用: * 笔记本散热底座是一种专为笔记本电脑设计的辅助散热设备。 * 它的主要作用是增强笔记本电脑的散热性能,防止电脑因

2024年7月11日 07:17

联想昭阳e23(联想昭阳E23参数)

联想昭阳e23(联想昭阳E23参数)

联想昭阳E23参数联想昭阳E23是一款笔记本电脑,其参数涵盖了硬件配置、显示效果、电池续航等多个方面。以下是关于联想昭阳E23参数的详细解释:1. 处理器(CPU): - 通常搭载的是英特尔或AMD的处理器,具体型号可能因产品版本而异。

2024年7月18日 17:25

宏基电脑驱动(宏基电脑驱动下载)

宏基电脑驱动(宏基电脑驱动下载)

宏基电脑驱动下载当然可以,以下关于“宏基电脑驱动下载”的条理明确的解释:一、什么是宏基电脑驱动?宏基电脑驱动是指宏基(Acer)品牌电脑的各种硬件设备所需的驱动程序。这些驱动程序是硬件与操作系统之间的桥梁,使硬件设备能够正常工作并与操作系统

2024年7月20日 01:41

笔记本键盘维修(笔记本键盘维修要多少钱)

笔记本键盘维修(笔记本键盘维修要多少钱)

笔记本键盘维修要多少钱关于“笔记本键盘维修要多少钱”的相关内容,以下是一些解释:1. 维修费用因素:笔记本键盘的维修费用因品牌、型号、损坏程度、维修难度、地区差异等因素而异。2. 损坏程度:如果只是个别键失灵或损坏,维修费用相对较低;如果是

2024年7月18日 20:06

惠普台式电脑(惠普台式电脑如何进入bios设置)

惠普台式电脑(惠普台式电脑如何进入bios设置)

惠普台式电脑如何进入bios设置惠普台式电脑进入BIOS设置,需要遵循一定的操作步骤。下面是一个条理明确的解释:1. 重启电脑:首先,您需要重新启动您的惠普台式电脑。2. 不停按启动键:在电脑刚启动,尚未完全进入系统前,不停地按BIOS的启

2024年7月21日 01:06

15寸笔记本电脑(15寸笔记本电脑长宽多少)

15寸笔记本电脑(15寸笔记本电脑长宽多少)

15寸笔记本电脑长宽多少“15寸笔记本电脑”中的“寸”并非传统意义上的尺寸单位,这里的“寸”是指电脑屏幕的对角线长度,即用测量设备测量电脑屏幕四角到中心的距离,然后取对角线长度进行计算。因此,当我们说“15寸笔记本电脑”时,实际上是指电脑屏

2024年7月16日 15:01

三星平板电脑p1000(三星平板电脑p1000参数)

三星平板电脑p1000(三星平板电脑p1000参数)

三星平板电脑p1000参数“三星平板电脑P1000”是一款由三星公司生产的平板电脑,以下是关于其参数的详细解释:1. 处理器:这款平板电脑搭载了强劲的处理器,确保流畅的操作系统和平稳的运行速度。2. 操作系统:它运行的是Android或类似

2024年7月18日 08:31

显卡更新(显卡更新驱动)

显卡更新(显卡更新驱动)

显卡更新驱动当然可以,以下是关于“显卡更新驱动”的详细解释:一、什么是显卡驱动?显卡驱动是计算机系统中控制显卡运作的驱动程序。它是硬件和操作系统之间的接口,为硬件提供了良好的工作环境和最优的性能表现。二、为何需要更新显卡驱动?1. 优化性能

2024年7月22日 04:06

三星笔记本电脑报价(三星笔记本电脑报价大全)

三星笔记本电脑报价(三星笔记本电脑报价大全)

三星笔记本电脑报价大全关于“三星笔记本电脑报价大全”的内容,下面我将详细地为你介绍:一、三星笔记本电脑简介三星笔记本电脑是韩国三星电子集团推出的电子类产品。它以高质量的工艺设计、创新的技术以及强大的性能在市场上占有重要地位。二、三星笔记本电

2024年7月21日 10:11

神舟笔记本飞天系列(神舟笔记本飞天系列广告)

神舟笔记本飞天系列(神舟笔记本飞天系列广告)

神舟笔记本飞天系列广告“神舟笔记本飞天系列广告”是神舟电脑针对其笔记本电脑产品所推出的广告系列。以下是该系列广告的相关内容解释:1. 目的和背景:神舟电脑是一家以提供高性价比的电脑产品为主的品牌。为了提升其笔记本电脑产品的知名度和销量,神舟

2024年7月19日 22:23

地球人笔记本官网(地球人笔记本官网报价)

地球人笔记本官网(地球人笔记本官网报价)

地球人笔记本官网报价关于“地球人笔记本官网报价”的相关内容,以下是一些基本的解释:1. 地球人笔记本是什么:地球人笔记本一般指某个品牌或系列的笔记本电脑。要获取准确的产品信息,应访问该品牌的官方网站或与其经销商联系。2. 官网报价的含义:官

2024年7月19日 02:31

游戏本推荐(游戏本推荐2024性价比)

游戏本推荐(游戏本推荐2024性价比)

游戏本推荐2024性价比关于“游戏本推荐2024性价比”的相关内容,以下是一些条理清晰的解释:一、什么是游戏本?游戏本,顾名思义,是专为满足游戏爱好者需求而设计的笔记本电脑。它通常具有强大的处理能力、高分辨率的显示屏和专业的图形处理单元(G

2024年7月28日 03:51

近期文章

本站热文

iphone vpn设置(ios设置vpn快捷开关)
2024-07-22 15:01:12 浏览:2334
windows12正式版下载(操作系统Windows Server 2012 R2,在哪能下载到,公司用的)
2024-07-20 17:26:53 浏览:1731
java安装教程(win10如何安装JAVA)
2024-07-19 19:55:49 浏览:1156
client mfc application未响应(每次进cf就提示client MFC Application未响应该怎么办啊!急急急)
2024-07-20 11:15:58 浏览:1152
标签列表

热门搜索