首页 新闻 会员 周边

关于CallWindowProc与发送消息(sendmessage postmessage)

0
悬赏园豆:10 [已关闭问题]

函数CallWindowProc是将消息信息传送给指定的窗口过程

sendmessage postmessage也可以实现向指定的窗口发送消息。

两者直接有什么区别呢。什么情况下使用前者,什么情况使用后者呢?

adamcy的主页 adamcy | 初学一级 | 园豆:190
提问于:2009-09-18 09:25
< >
分享
其他回答(1)
0

MSDN上解释:

CallWindowProc 将消息信息传送给指定的窗口过程。同一类的所有窗口共享一个窗口过程。子类是一个窗口或者相同类的一套窗口,在其消息被传送到该类的窗口过程之前,这些消息是由另一个窗口过程进行解释和处理的。

PostMessage将消息直接加入到应用程序的消息队列中,不等程序返回就退出.
SendMessage要等到受到消息处理的返回码(DWord类型)后才继续,必须等到消息被处理后才会返回。

风浪 | 园豆:2996 (老鸟四级) | 2009-09-18 09:40
0

CallWindowProc 是用于接收消息的。即指定某个windows 消息采用你在CallWindowProc 中指定的函数来接受。

SendMessage, PostMessage 是用来发送windows消息的。其中SendMessage是发送同步消息,即接受进程返回,发送进程才返回,PostMessage是发送异步消息的。

eaglet | 园豆:17139 (专家六级) | 2009-09-18 12:26
如果我调用CallWindowProc(wndproc,evt...)和SendMessage(evt),是不是都可以实现在wndproc里面处理evt事件呢,从这个角度来说不就都是一样的了吗?所以我想知道这种用法大家是怎么理解的。
支持(0) 反对(0) adamcy | 园豆:190 (初学一级) | 2009-09-21 13:54
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册