我在一篇文章看到:在程序运行时CWinApp将创建一个CFrameWnd框架窗口实例,而框架窗口将创建文档模板,然后有文档模板创建文档实例和视实 例,并将两者关联。
    而我自己创建了一个单文档工程,在VC自动生成的代码中:
        BOOL CMyApp::InitInstance()
        {
            ...
        
            CSingleDocTemplate* pDocTemplate;
   pDocTemplate = new CSingleDocTemplate(
IDR_MAINFRAME,
RUNTIME_CLASS(CMyDoc),
RUNTIME_CLASS(CMainFrame),     // main SDI frame window
RUNTIME_CLASS(CMyView));
   AddDocTemplate(pDocTemplate);            ...
        }
   有这么一段代码,如果就这段代码来看,好像应该是WinApp在创建文档模板的同时创建了框架窗口,文档和视图,请问是不是这样?

解决方案 »

  1.   

    的确是这样的!当你点击新建时,app会自动调用文档模板来创建新文件所属的文档,框架及视图!
    一般顺序就是先创建新文件所对应的文档类,然后创建框架,因SDI只有一个主框架,故为CMainFrame,如是MDI则创建的是CChildframe,创建完框架后当然就是创建视图了,视图是用来显示文档类实例的内容的,而它又必须依附框架来创建故需在框架创建之后!
      

  2.   

    创建次序: DocTemplate --> MainFrame --> Document --> ChildFrame --> View
    创建关系
    CWinApp --> DocTemplate, MainFrame 
    DocTemplate --> Document, ChildFrame 
    ChildFrame --> View