==================================声明==================================
本文原创,转载在正文中显要的注明作者和出处,并保证文章的完整性。
未经作者同意请勿修改(包括本声明),保留法律追究的权利。
未经作者同意请勿用于出版、印刷或学术引用。
本文不定期修正完善,为保证内容正确,建议移步原文处阅读。
本文链接:http://www.cnblogs.com/wlsandwho/p/4288818.html
=======================================================================
本来这篇不该是魔改,只是简单的对控件进行初始化和操作,但由于是基于前面文章的,所以索性就魔改开头了。
=======================================================================
基于前面TestMDIWLS工程
=======================================================================
给IDD_FORMVIEW1添加一个CListCtrl控件,ID为IDC_LIST1,关联变量m_ListCtrl。
在TestMDIWLS.h中声明
1 extern CView* gView[3]; 2 extern CView* gpDefaultView; 3 extern CFV1* gpFV1; 4 extern CFV2* gpFV2;
在TestMDIWLS.cpp中定义
CView* gView[3];// CView* gpDefaultView=NULL; CFV1* gpFV1=NULL; CFV2* gpFV2=NULL;
在CTestMDIWLSApp::OnFileNewWLS中
1 void CTestMDIWLSApp::OnFileNewWLS() 2 { 3 static BOOL bNew=FALSE; 4 5 if (bNew==FALSE) 6 { 7 bNew=TRUE; 8 9 CDocTemplate* pTemplate = NULL; 10 CDocument* pDoc=NULL; 11 int nIndex=0; 12 13 POSITION pos = GetFirstDocTemplatePosition(); 14 while(pos) 15 { 16 pTemplate = GetNextDocTemplate(pos); 17 18 ASSERT(pTemplate != NULL); 19 ASSERT_KINDOF(CDocTemplate, pTemplate); 20 21 pDoc=pTemplate->OpenDocumentFile(NULL); 22 POSITION posView=pDoc->GetFirstViewPosition(); 23 gView[nIndex++]=pDoc->GetNextView(posView); 24 } 25 } 26 27 //获得视图指针,保存起来,以后可以像theApp一样方便使用。 28 gpDefaultView=(CTestMDIWLSView*)gView[0]; 29 gpFV1=((CFV1*)gView[1]); 30 gpFV2=((CFV2*)gView[2]); 31 32 //添加自己的CFormView模板初始化代码 33 gpFV1->m_ListCtrl.InsertColumn(0,TEXT("WLS"),LVCFMT_LEFT,50); 34 }
这样就完成了。
如图:
=======================================================================
PS:
由于我例子中默认的视图页没有删除,所以一共添加了3个模板。
其中要注意的是位于位置0的模板,我用的是
1 CView* gpDefaultView;
没有使用CTestMDIWLSView*的类型。
所以如果只是想使用MDI的华丽Tab页(内盛CFormView)来显示数据,不使用序列化的话,还是把默认的模板屏蔽掉吧。
见随手小代码——C++基础——子类转父类转子类 (派生类转基类转派生类)http://www.cnblogs.com/wlsandwho/p/4288883.html