SendMessage 要不要把消息投递消息队列中

cmchao 2008-11-25 03:22:47
sendmessage 要不要把消息投递消息队列中?其消息的投递过程和处理是怎么样的?
...全文
118 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
七伤拳 2008-11-26
  • 打赏
  • 举报
回复
上面说的都不完全正确。

1、当一个线程向该线程所建立的窗口SendMessage消息时,它只是调用指定窗口的消息处理过程,并不将消息入队列

2、当一个线程向另一个线程所建立的窗口SendMessage时,该消息要追加到接收消息线程的发送消息队列,然后发送消息的线程进入等待状态,接收消息的线程处理完该消息后,由系统唤醒发送消息的线程,这时发送线程继续进行

3、一个线程的消息队列实际上分为四种不同的消息队列:Post消息队列、Send消息队列、输入消息队列、应答消息队列。PostMessage是将消息追加到Post消息队列,SendMessage是追加到Send消息队列,两个队列处理的优先级并不一样。

详见<windows核心编程>窗口消息这一章。

zhenyonghou 2008-11-26
  • 打赏
  • 举报
回复
SendMessage不入消息队列,直接调用对方的相应消息处理函数,等调用完后才返回。
linger1216 2008-11-25
  • 打赏
  • 举报
回复
send之后处理完消息后才能返回....
post是异步的
greatws 2008-11-25
  • 打赏
  • 举报
回复
投进队列,并等待处理完毕才返回
来灵 2008-11-25
  • 打赏
  • 举报
回复

http://www.china-askpro.com/msg42/qa05.shtml

http://topic.csdn.net/t/20041029/09/3501838.html
bai_hua_lin 2008-11-25
  • 打赏
  • 举报
回复
SendMessage是等对方的消息响应函数执行完了再回来,PostMessage是直接把消息投出去,也就是入队列了,自己继续干自己的事情,不再去理会这个投出去的消息了。
尘之召唤 2008-11-25
  • 打赏
  • 举报
回复
SendMessage不入消息队列,直接调用对方的相应消息处理函数,等调用完后才返回。返回值好象是其处理函数的返回值。

15,979

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 界面
社区管理员
  • 界面
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧