【面试题研究1】SendMessage是否进入消息队列

来源:互联网 发布:测绘数据处理软件 编辑:程序博客网 时间:2024/05/16 10:55

      SendMessage发送出来的消息到底进入不进入消息队列,确切的说是有时进入,有时不进入。

    1.当向本线程所建立的窗口SendMessage消息时,它只是调用窗口的消息处理过程。如下图所示,OnTimer中调用SendMessage,会直接调用到消息处理过程。



   2.当一个线程向另一个线程所建立的窗口SendMessage时,该消息要添加到接收线程的消息队列,然后发送消息的线程进入等待状态,接收消息的线程处理完该消息后,由系统唤醒发送消息的线程,这时发送线程继续执行。如下图所示:窗口通过PumpMessage获取消息然后处理。



原创粉丝点击