Windows消息系统是如何工作的
一、Windows的消息系统是由3个部分组成的:
消息队列:Windows能够为所有的应用程序维护一个消息队列。应用程序必须从消息队列中获取消息,然后分派给某个窗口。
消息循环:通过这个循环机制应用程序从消息队列中检索消息,再把它分派给适当的窗口,然后继续从消息队列中检索下一条消息,在分派给适当的窗口,依次进行。
窗口过程:每一个窗口都有一个窗口过程来接收传递给窗口的消息,它的任务就是获取消息然后响应它。窗口过程是一个回调函数,处理了一个消息后,它通常要返回一个值给Windows。
这里的窗口可以是任何类型的屏幕对象,如窗口、对话框、按钮、编辑框等
二、消息从产生到被一个窗口响应,包含5个步骤:
1、系统中发生了某个事件
2、Windows把这个事件翻译为消息,然后把它放在TMsg记录中
3、应用程序从消息队列中接收到这个消息,把它放在TMsg记录中
4、应用程序把消息传递给一个适当的窗口的窗口过程
5、窗口过程响应这个消息并进行处理
步骤3和4构成了应用程序的消息循环。消息循环往往是Windows应用程序的核心,因为消息循环使一个应用程序能够响应外部的事件。消息循环的任务就是从消息队列中检索消息,然后把消息传递给适当的窗口。如果消息队列中没有消息,Windows就允许其他应用程序处理他们的消息。下图显示了这5个步骤:

浙公网安备 33010602011771号