MFC程序中 窗口类是在哪里实例化的?

时间:2022-01-02 11:57:08
MFC程序运行的过程,首先定义了一个全局的theApp,然后,运行theApp的构造函数。构造完theApp后进入winmain函数,winmain函数结尾调用了theApp的实例化函数Initinstance.
然后我看孙鑫老师的教程,接下来直接跳到了窗口的创建了。
我想问一下,在多文档程序中,CMainFrame类和CView类是在哪里实例化的?不然,在什么时候调用它们的构造函数?
在对话框程序中,主对话框类又是在什么时候实例化的呢?

2 个解决方案

#1


单步类的实例“构造”或“复制”或“作为函数参数”或“作为函数返回值返回”或“参加各种运算”或“退出作用域”的语句对应的汇编代码几步后,就会来到该类的“构造函数”或“复制构造函数”或“运算符重载”或“析构函数”对应的C/C++源代码处。

VC调试时按Alt+8、Alt+7、Alt+6和Alt+5,打开汇编窗口、堆栈窗口、内存窗口和寄存器窗口看每句C对应的汇编、单步执行并观察相应堆栈、内存和寄存器变化,这样过一遍不就啥都明白了吗。
对VC来说,所谓‘调试时’就是编译连接通过以后,按F10或F11键单步执行一步以后的时候,或者在某行按F9设了断点后按F5执行停在该断点处的时候。

#2



当然是在程序的initinistance 这个函数里面实例化的。自动初始化的
mfc的文档结构视图都做好了。

如果是多个分割视图。在mainFrame的  Create什么 函数里面的

管它在哪里初始化的。你知道在那里修改就好了
宋世鹏宇宙信息网

#1


单步类的实例“构造”或“复制”或“作为函数参数”或“作为函数返回值返回”或“参加各种运算”或“退出作用域”的语句对应的汇编代码几步后,就会来到该类的“构造函数”或“复制构造函数”或“运算符重载”或“析构函数”对应的C/C++源代码处。

VC调试时按Alt+8、Alt+7、Alt+6和Alt+5,打开汇编窗口、堆栈窗口、内存窗口和寄存器窗口看每句C对应的汇编、单步执行并观察相应堆栈、内存和寄存器变化,这样过一遍不就啥都明白了吗。
对VC来说,所谓‘调试时’就是编译连接通过以后,按F10或F11键单步执行一步以后的时候,或者在某行按F9设了断点后按F5执行停在该断点处的时候。

#2



当然是在程序的initinistance 这个函数里面实例化的。自动初始化的
mfc的文档结构视图都做好了。

如果是多个分割视图。在mainFrame的  Create什么 函数里面的

管它在哪里初始化的。你知道在那里修改就好了
宋世鹏宇宙信息网