CFormView 和 CDialog的区别和联系
辉歌 2002-10-10 10:11:31 CFormView 和 CDialog的区别和联系
今天我突发奇想,创建了一个对话框,继承自CFormView,结果我不知道怎么去显示它。稍加研究后,我发现,这两个类,虽然在外部表现上,很想象,都可以在可视化的情况下布局控件,但其实他们的实质是有很大的区别,至少我现在知道,CFormViw可以和某一文档类关联,它的父类CView有一个成员变量:m_pDocument,用来指向与此view关联的Document。好象是在CXXXApp::Instance()中,通过
pDocTemplate = new CSingleDocTemplate(
IDR_MAINFRAME,
RUNTIME_CLASS(CTowInOneDoc),
RUNTIME_CLASS(CMainFrame), // main SDI frame window
RUNTIME_CLASS(CTowInOneView));
AddDocTemplate(pDocTemplate);
如上形式关联起来的。
但有时我查看别人的文档,没有找到类似的关联语句,而是在视图类里:
CXXXDoc* GetDocument(....)来得到文档。我就想,此时的文档和视图是怎么关联起来的呢?
还有,CDialog 可以用Domodal()来显示,CFormView 呢?
我以下面的形式:
CXXXForm fv;
fv.ShowWindow(0);
fv.UpdateWindow();
结果不能显示。