第一篇关于MFC的文章,将自己理解的一点东西写出来。MFC是将windows编程升级,完全运用了面向对象的思想,因此想要了解MFC首先必须对windows的API和各个类之间的关系非常明确。最开始通过一个win32程序来剖析windows的消息机制。
因为我们的程序是基于windows下运行的,所以消息都是通过IO设备与OS相互通信来传递的,通过OS将消息发送给应用程序,应用程序再将受到的消息给其所属的窗口过程函数(回调函数)来选择响应方式。win32程序的主体架构:WinMain函数是程序的入口函数,由系统自动调用(创建窗口的消息队列),完成窗口的设计,注册,创建,窗口过程函数的创建,显示及刷新,接受os发来的消息和向os发送消息。os在某个窗口接受到IO设备的消息后,会将消息加入到其消息队列中,当GetMessage()后,DispatchMessage给其窗口过程函数,窗口过程函数通过switch匹配,响应消息。
在整个编程过程中WinMain主要是窗口的相关处理和取得自己的消息并向窗口过程函数发送达到响应消息的作用,窗口过程函数则具体实现了消息的响应过程。每个win32程序由上至下都需要创建窗口,而窗口只是一个响应交互的界面,是可以通用的这样MFC中就可以将其变成静态代码自动生成,没有特殊要求是不需要变化的,而各个程序的不同主要在于响应的过程不同,所以我们编程解决问题的主要核心转移到了窗口过程函数中。由此诞生了MFC这样的面向对象的程序架构。