theApp是全局变量, 在进入程序入口这前已实例化了,这是基本常识啊.
cwinapp它派生自cwiinthread,c++的多态,就是利用基类来表达子类的行为.
mfc框架指的是程序入口_afxwinmain里面那段代码.基于对话框,单文档,多文档,都用得是这段代码.而不同的特性,则是靠实际派生类重载virtual函数来实现的(也就是所谓的多态的行为),
这是其一.
其二,main只是一个架子,对于一个框架程序来说,还是远远不够的.所以v s的向导在cwinapp派生类重载了相关的函数,完成了一切窗口建立所必需的流程(建立窗口类,注册窗口类,创建窗口等等).了解到这一点,用mfc编程就相当安逸了.
但是,mfc并不是如此简单,它相比传统的win32窗口建立多了点变化.问题就出在win32消息太多了,不可能为窗口类去定义所有的消息处理用virtual函数,所以引入消息映射表.
所以在窗口创建前,要放hook,保证各个相关都有机会去响应消息.这是很好的设计.
----------
以后你接触一些大程序的架构,你都能找到mfc架构的影子.其实这就是编程技法.看多了,你也会这么用设计的.
好好看下各向导下,InitInstance()提供的实现,你会找到答案的.