特殊说明:版权归个人所有,请勿转载,谢谢合作。
Windows系统中,以消息为核心,以事件为驱动。所谓事件驱动,简单地说就是点什么按钮、选择了某个单选按钮或者复选框。每一种控件有自己可以识别的事件,如窗体的加载、单击、双击等事件等等。当然事件不仅限于用户的操作。当事件发生了,如何告诉系统做了什么,这就需要消息机制。在Windows中发生的一切都可以用消息来表示,消息用于告诉操作系统发生了什么,所有的Windows应用程序都是消息进行传递的。即消息与事件的关系是:事件触发消息,消息传递事件。如图3.5所示。
- 图3.1 消息机制
如图3.5所示,根据窗口的创建的五个步骤,程序从上向下执行,当执行完前四步,到达while处,程序将进入到无限的循环中。程序通过设计一个窗口类、注册窗口、创建窗口、显示及更新窗口后,整个窗口将显示在桌面上,接下来是程序等待用户的操作,即接收键盘及鼠标的消息。Windows为每个线程维护了一个消息队列,当有一个事件发生,系统就会把事件翻译成消息,放入到消息队列中,再利用GetMessage函数从调用线程的消息队列中取出一个消息,并赋值到MSG结构体中;TranslateMessage函数将消息翻译成可传递的消息,最后由DispatchMessage函数,将消息分发到对应窗口的过程处理函数中;当过程处理函数执行完毕后,又回到GetMessage函数,则进入到下一轮的调用。
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。