引言:在看一本关于MFC的老书《MFC Windows程序设计(第2版)》,看到一个图画的真的特别好,一下子就把windows程序的消息驱动机制讲清楚了。
个人技术博客(文章整理+源码): https://zobolblog.github.io/LearnWinAPI/
” 为传统操作系统编写的程序使用的是过程化的模型,程序从头到尾按顺序执行。每次程序调用从开始到结束所经的路径可能会不同,这是由于程序所接收的输入或运行的条件不同,但路径本身是可预测的。C程序从第1行带有main函数的语句开始执行,到main函数返回值结束。在首尾行之间,函数main会调用其他函数,而这些函数可能会调用更多的函数,但始终是程序而不是操作系统决定何时调用哪个函数。
Windows程序则不是这样执行的。它们使用如图1-1所示的事件驱动编程模型,应用程序通过处理操作系统发送来的消息来响应事件。事件可能是一次击键、鼠标单击或是要求窗口更新的命令以及其他事情。Windows程序的进人点是函数WinMain,但是大多数操作是在称为窗口过程的函数中进行的。窗口过程函数处理发送给窗口的消息。WinMain 函数创建该窗口并进入消息循环,即获取消息或将其调度给窗口过程。消息被检索之前处于消息队列中等待。一个典型的应用程序的绝大部分操作是在响应它收到的消息,除了等待下一个消息到达以外,它几乎什么也不做。”
本人个人技术博客: https://zobolblog.github.io/LearnWinAPI/ ,个人公众号:zobol的魔法藏书室,个人windows编程、MFC、C++技术兴趣群:811851762。
原创文章,作者:ItWorker,如若转载,请注明出处:https://blog.ytso.com/269498.html