MFC::BOOL InitInstance()

来源:百度知道 编辑:UC知道 时间:2024/06/30 06:47:59
单文档中的InitInstance()中有段代码

doc = pDocTemplate->CreateNewDocument() ;

m_pMainWnd = pDocTemplate->CreateNewFrame( doc, NULL ) ;

pDocTemplate->InitialUpdateFrame( (CFrameWnd*)m_pMainWnd, doc ) ;

m_pMainWnd->ShowWindow( SW_SHOWNORMAL ) ;

我看到有创建文档,创建框架窗口,可是就没看到任何关于VIEW类的代码,
InitialUpdateFrame是要调用VIEW类的OnInitialUpdate()方法.可是VIEW对象在哪?是MFC背后创建吗?
动态创建我知道,这3个类都是动态创建,我是想问

为什么Frame类和document类是显式创建,而VIEW类却不用,MFC又在背地里做了什么勾当?

书上也确实说了,应用程序创建 模板,模板建文档和框架,框架建视图,我想了解稍微具体些.

比如什么时候,由某某建立了VIEW类.我一定会加分的

view是m_pMainWnd的子窗口吧,应该是在主框架窗口里创建的。
这是我的理解。我比较懒,不喜欢研究mfc的代码,所以不一定正确,供你参考吧

CSingleDocTemplate* pDocTemplate;
pDocTemplate = new CSingleDocTemplate(
IDR_MAINFRAME,
RUNTIME_CLASS(CSDIDoc),
RUNTIME_CLASS(CMainFrame), // main SDI frame window
RUNTIME_CLASS(CSDIView));
AddDocTemplate(pDocTemplate);

RUNTIME_CLASS可以在运行时动态创建一个类,无需声明一个对象