==================================声明==================================

本文原创,转载在正文中显要的注明作者和出处,并保证文章的完整性。

未经作者同意请勿修改(包括本声明),保留法律追究的权利。

未经作者同意请勿用于出版、印刷或学术引用。

本文不定期修正完善,为保证内容正确,建议移步原文处阅读。

本文链接: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