SendMessage和PostMessage发送的消息由哪个函数处理?

gmyhbio 2013-02-26 10:03:13
Peekmessage() 从消息队列中读消息
Getmessage() 可以有选择的从消息列表中得到消息
DispatchMessage() 用来派送消息到窗口过程
TranslateMessage() 用于将Virtul-Key消息翻译为字符消息
Postthreadmessage() 用于向线程发送消息
Postmessage() 用于将消息传送到窗口的消息队列
SendMessage()不经过消息队列而直接发送给窗口的

是PeekMessage吗?那窗口显示和隐藏。PeekMessage接收到消息是什么?
...全文
258 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
「已注销」 2013-03-06
  • 打赏
  • 举报
回复
分为几种情况: 1. 从本线程调用sendmessage,发往本线程的hwnd, 则在sendmessage函数内部调用窗口过程。 2. 从本线程调用sendmessage,发往另外线程的hwnd,则在另外线程的getmessage或者peekmessage函数内调用窗口过程。 3. postmessage的任何消息都最后在hwnd所属线程的消息队列里入列,后可被hwnd所属线程所调用的getmessage或者peekmessage函数取出,后可在dispatchmessage里调用窗口过程。
  • 打赏
  • 举报
回复
DispatchMessage() 用来派送消息到窗口过程
Eleven 2013-02-26
  • 打赏
  • 举报
回复
PeekMessage和GetMessage都是从消息队列中读取消息,不同的GetMessage没有消息的时候阻塞,PeekMessage则不会,如果消息可用,返回非0,如果没有消息,返回0. 看下MSDN吧,有详细解释~
jimette 2013-02-26
  • 打赏
  • 举报
回复
好像我理解错了 看看mfc深入浅出 应该是 peekmessage或者getmessage 然后进行translate 和 dispatch 具体记不太清了
jimette 2013-02-26
  • 打赏
  • 举报
回复
SendMessage和PostMessage发送的消息由哪个函数处理 看你发送的是什么消息例如wm_create 则由oncreate函数处理

15,471

社区成员

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

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