3.3 事件与消息

特殊说明:版权归个人所有,请勿转载,谢谢合作。

Windows系统中,以消息为核心,以事件为驱动。所谓事件驱动,简单地说就是点什么按钮、选择了某个单选按钮或者复选框。每一种控件有自己可以识别的事件,如窗体的加载、单击、双击等事件等等。当然事件不仅限于用户的操作。当事件发生了,如何告诉系统做了什么,这就需要消息机制。在Windows中发生的一切都可以用消息来表示,消息用于告诉操作系统发生了什么,所有的Windows应用程序都是消息进行传递的。即消息与事件的关系是:事件触发消息,消息传递事件。如图3.5所示。

  • 图3.1 消息机制

 

如图3.5所示,根据窗口的创建的五个步骤,程序从上向下执行,当执行完前四步,到达while处,程序将进入到无限的循环中。程序通过设计一个窗口类、注册窗口、创建窗口、显示及更新窗口后,整个窗口将显示在桌面上,接下来是程序等待用户的操作,即接收键盘及鼠标的消息。Windows为每个线程维护了一个消息队列,当有一个事件发生,系统就会把事件翻译成消息,放入到消息队列中,再利用GetMessage函数从调用线程的消息队列中取出一个消息,并赋值到MSG结构体中;TranslateMessage函数将消息翻译成可传递的消息,最后由DispatchMessage函数,将消息分发到对应窗口的过程处理函数中;当过程处理函数执行完毕后,又回到GetMessage函数,则进入到下一轮的调用。

 

 

转载请附上原文出处链接及本声明
李老师的博客 » 3.3 事件与消息

发表评论

提供最优质的文章集合

立即查看 了解详情