windows消息处理机制和VB
在开始具体的VB知识讲述之前,吉大的教程为我们讲述了windows的消息处理机制,并用C语言,简单描述了windows内部的消息处理机制,分了:注册窗口类,创建窗口,显示消息循环,取出发给窗口,函数执行
首先说一下消息,消息是任何面向对象系统的关键部分,windows环境与应用程序之间的交互,及其与外界的交互就是通过消息来完成的。Windows发出的一个通知,告诉应用程序某个事情发生了。例如,单击鼠标、改变窗口尺寸、按下键盘上的一个键都会使Windows发送一个消息给应用程序。消息本身是作为一个记录传递给应用程序的,这个记录中包含了消息的类型以及其他信息。
Windows的消息系统是由3个部分组成的:
消息队列:Windows能够为所有已注册的应用程序维护一个消息队列。应用程序必须从消息队列中获取
消息,然后分派给某个窗口。
消息循环:通过这个循环机制应用程序从消息队列中检索消息,再把它分派给适当的窗口,然
后继续从消息队列中检索下一条消息,再分派给适当的窗口,依次进行。
窗口过程:每个窗口都有一个窗口过程来接收传递给窗口的消息,它的任务就是获取消息然后
响应它,窗口过程是一个回调函数;处理了一个消息后,它通常要返回一个值给Windows。
注意回调函数是程序中的一种函数,它是由Windows或外部模块调用的。
一个消息从产生到被一个窗口响应,其中有5个步骤:
1) 系统中发生了某个事件。
2) Windows把这个事件翻译为消息,然后把它放到消息队列中。
3) 应用程序从消息队列中接收到这个消息,把它存放在记录中。
4) 应用程序把消息传递给一个适当的窗口的窗口过程。
5) 窗口过程响应这个消息并进行处理。
步骤3和4构成了应用程序的消息循环。消息循环往往是Windows应用程序的核心,因为消息循环
使一个应用程序能够响应外部的事件。消息循环的任务就是从消息队列中检索消息,然后把消息传递给适当的窗口。如果消息队列中没有消息,Windows就允许其他应用程序处理它们的消息。
Windows操作系统最大的特点就是其图形化的操作界面,其图形化界面是建立在其消息处理机制这个基础之上的。
不理解Windows消息处理机制,肯定无法深入的理解Windows编程。可惜我对windows的消息处理机制内部原理还是理解的比较浅,希望随着学习的深入,能理解得更透彻。
参考: