Windows消息系统是如何工作的

一、Windows的消息系统是由3个部分组成的:

消息队列:Windows能够为所有的应用程序维护一个消息队列。应用程序必须从消息队列中获取消息,然后分派给某个窗口。

消息循环:通过这个循环机制应用程序从消息队列中检索消息,再把它分派给适当的窗口,然后继续从消息队列中检索下一条消息,在分派给适当的窗口,依次进行。

窗口过程:每一个窗口都有一个窗口过程来接收传递给窗口的消息,它的任务就是获取消息然后响应它。窗口过程是一个回调函数,处理了一个消息后,它通常要返回一个值给Windows。

这里的窗口可以是任何类型的屏幕对象,如窗口、对话框、按钮、编辑框等

 

二、消息从产生到被一个窗口响应,包含5个步骤:

1、系统中发生了某个事件

2、Windows把这个事件翻译为消息,然后把它放在TMsg记录中

3、应用程序从消息队列中接收到这个消息,把它放在TMsg记录中

4、应用程序把消息传递给一个适当的窗口的窗口过程

5、窗口过程响应这个消息并进行处理

步骤3和4构成了应用程序的消息循环。消息循环往往是Windows应用程序的核心,因为消息循环使一个应用程序能够响应外部的事件。消息循环的任务就是从消息队列中检索消息,然后把消息传递给适当的窗口。如果消息队列中没有消息,Windows就允许其他应用程序处理他们的消息。下图显示了这5个步骤:

posted @ 2015-12-16 12:15  zhangsai  阅读(200)  评论(0)    收藏  举报