单文档应用程序的窗口类的创建和窗口是怎么产生的?
刚看了一下好像是InitInstans()里面调用ProcessShellCommand(),然后触发一个消息ID_FILE_NEW,然后在消息响应函数中调用Create(),是这样的吗?如果是那段代码在哪里?就是调用Create的那段。我找了CWinApp那条继承链也没找到相关的映射宏。如果不是那是怎样的呢?

解决方案 »

  1.   

    在调式SDI程序,按F10进入调试模式,结合F11进入相关函数,在CMainFrame::PreCreateWindow, CMainFrame::OnCreate等打上断点,用F11进入即可清楚的看到流程和Create代码段,其实内部和win32 一样注册窗口类之类的语句
      

  2.   

    我现在就是想看到产生主窗口的代码。CMainFrame::OnCreate本身是调用::CreateWindow创建主窗口时激发的,在里面能看到View类对象的产生。主窗口类的产生和主窗口的创建应该是在CWinApp类的有关函数中产生,或是在某些消息响应函数中产生,代码在哪儿呢?还有状态栏,停靠栏那些是在哪触发的呢?跟踪时只发现不停的调用CWnd::CreateEx,可不知触发各自的源头在哪。。哪位高手说一下,搞清楚了剩下的200多分全给了!!