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

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

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

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

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

本文链接:http://www.cnblogs.com/wlsandwho/p/4288818.html

=======================================================================

本来这篇不该是魔改,只是简单的对控件进行初始化和操作,但由于是基于前面文章的,所以索性就魔改开头了。

=======================================================================

基于前面TestMDIWLS工程

=======================================================================

给IDD_FORMVIEW1添加一个CListCtrl控件,ID为IDC_LIST1,关联变量m_ListCtrl。

在TestMDIWLS.h中声明

 extern CView* gView[];
extern CView* gpDefaultView;
extern CFV1* gpFV1;
extern CFV2* gpFV2;

在TestMDIWLS.cpp中定义

CView* gView[];//
CView* gpDefaultView=NULL;
CFV1* gpFV1=NULL;
CFV2* gpFV2=NULL;

在CTestMDIWLSApp::OnFileNewWLS中

 void CTestMDIWLSApp::OnFileNewWLS()
{
static BOOL bNew=FALSE; if (bNew==FALSE)
{
bNew=TRUE; CDocTemplate* pTemplate = NULL;
CDocument* pDoc=NULL;
int nIndex=; POSITION pos = GetFirstDocTemplatePosition();
while(pos)
{
pTemplate = GetNextDocTemplate(pos); ASSERT(pTemplate != NULL);
ASSERT_KINDOF(CDocTemplate, pTemplate); pDoc=pTemplate->OpenDocumentFile(NULL);
POSITION posView=pDoc->GetFirstViewPosition();
gView[nIndex++]=pDoc->GetNextView(posView);
}
} //获得视图指针,保存起来,以后可以像theApp一样方便使用。
gpDefaultView=(CTestMDIWLSView*)gView[];
gpFV1=((CFV1*)gView[]);
gpFV2=((CFV2*)gView[]); //添加自己的CFormView模板初始化代码
gpFV1->m_ListCtrl.InsertColumn(,TEXT("WLS"),LVCFMT_LEFT,);
}

这样就完成了。

如图:

=======================================================================

PS:

由于我例子中默认的视图页没有删除,所以一共添加了3个模板。

其中要注意的是位于位置0的模板,我用的是

 CView* gpDefaultView;

没有使用CTestMDIWLSView*的类型。

所以如果只是想使用MDI的华丽Tab页(内盛CFormView)来显示数据,不使用序列化的话,还是把默认的模板屏蔽掉吧。

见随手小代码——C++基础——子类转父类转子类 (派生类转基类转派生类)http://www.cnblogs.com/wlsandwho/p/4288883.html

魔改——MDI多视图模板Tab/标签页 初始化/操作控件的更多相关文章

  1. jquery插件之tab标签页或滑动门

    该插件乃本博客作者所写,目的在于提升作者的js能力,也给一些js菜鸟在使用插件时提供一些便利,老鸟就悠然地飞过吧. 此插件旨在实现目前较为流行的tab标签页或滑动门特效,在此插件中默认使用的是鼠标滑过 ...

  2. 如何一行jquery代码写出tab标签页(链式操作)

    啦啦!今天又学了一招,js写几十行的tab标签页jquery写一行就行啦,用到了链式操作!以下是代码: <!DOCTYPE html> <html lang="en&quo ...

  3. Bootstrap插件——(Tab)标签页

    项目中用到了Bootstrap的(Tab)标签页插件,记录如下: 代码如下: <div class="tabbable"> <ul class="nav ...

  4. Easyui 关闭jquery-easui tab标签页前触发事件

    关闭jquery-easui tab标签页前触发事件 by:授客 QQ:1033553122 测试环境 jquery-easyui-1.5.3 需求场景 点击父页面tab 页关闭按钮时,需要做判断,判 ...

  5. 在Bootstrap开发中解决Tab标签页切换图表显示问题

    在做响应式页面的时候,往往需要考虑更多尺寸设备的界面兼容性,一般不能写死像素,以便能够使得界面元素能够根据设备的不同进行动态调整,但往往有时候还是碰到一些问题,如Tab标签第一页面正常显示,但是切换其 ...

  6. VIM 实现tab标签页及分屏,切换命令

    1,在一个窗口中,VIM 的小tab标签页命令:   :tabnew [++opt选项] [+cmd] 文件            建立对指定文件新的tab :tabc       关闭当前的tab ...

  7. ExtJS配置TabPanel可以拖拽Tab标签页

    1.环境说明 ExtJS版本:7.4.0.42 Sencha Cmd: v7.5.1.20 开发工具:WebStorm 2022.1.1 PS:如果是老版本的ExtJS,引入Ext.ux.TabReo ...

  8. 我的QT5学习之路(三)——模板库、工具类和控件(下)

    一.前言 作为第三篇的最后一部分,我们来看一下Qt的控件,谈到控件,就会让人想到界面的美观性和易操作性,进而想到开发的便捷性.作为windows界面开发的MFC曾经是盛行了多少年,但是其弊端也随着其他 ...

  9. 整理用js实现tab标签页

    首先是css样式,比如这样的: <style> *{ ; ; list-style: none; font-size: 12px; } .notice{ width: 298px; hei ...

随机推荐

  1. CentOS6.5菜鸟之旅:文件权限详解

    一.前言 Linux下所有资源.设备均被视作文件来操作,而文件权限则是决定用户可各文件操作的范围,无论是平时使用Linux,还是写程序均涉及这方面.以下为个人学习的整理,供以后查阅. 二. 三种权限 ...

  2. 点餐系统mealsystem.sql

    /* Navicat MySQL Data Transfer Source Server : localhost Source Server Version : 50162 Source Host : ...

  3. 组合数学 - 母函数的变形 --- hdu 1171:Big Event in HDU

    Big Event in HDU Time Limit: 10000/5000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others ...

  4. .Net配置文件——反射+配置文件存储类型实例

    配置文件+反射确实去除了选择语句的繁琐,带来了优美的赶脚! 首先改进了一下类(接上文): ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 ...

  5. jqGrid动态列

    HTML代码: <div id="divList"> <div class="toolbar"> </div> <ta ...

  6. 如何快速开发树形列表和分页查询整合的WInform程序界面

    我在做Winform界面的时候,一般都是统一化处理,界面顶部放置一些字段条件供查询,下面就是分页查询列表,展示相关的数据.但有时候碰到一些表字段内容分类比较多,有一些特别重要,如果放在一个树形列表来进 ...

  7. Python入门笔记(23):模块

    一.模块基础 1.模块 自我包含,且有组织的代码片段就是模块 模块是Pyhon最高级别的程序组织单元,它将程序代码和数据封装起来以便重用.实际的角度,模块往往对应Python程序文件. 每个文件都是一 ...

  8. CRC16校验码生成

    /// <summary> /// 计算CRC-16 /// </summary> /// <param name="data"></pa ...

  9. FreeBSD暂时用9.X系列为宜

    今天尝试在FreeBSD10 上编译c代码,发现gcc被换成llvm后,环境配置需要重新学习.

  10. Visual Studio中设置默认VC++路径

    菜单"View" -> "Other Windows" -> "Property Manager" 选择对应的配置并修改即可.