转载地址:http://blog.csdn.net/akof1314/article/details/5618454

The CTabView class simplifies the use of the tab control class (CMFCTabCtrl ) in applications that use MFC's
document/view architecture.

class CTabbedView : public CView
Members


Public Methods

Name

Description

CTabView::AddView

Adds a new view to the tab control.

CTabView::FindTab

Returns the index of the specified view in the tab control.

CTabView::GetActiveView

Returns a pointer to the currently active view

CTabView::GetTabControl

Returns a reference to the tab control associated with the view.

CTabView::RemoveView

Removes the view from the tab control.

CTabView::SetActiveView

Makes a view active.

Protected Methods

Name

Description

CTabView::IsScrollBar

Called by the framework when creating a tab view to determine whether the tab view has a shared horizontal scroll bar.

CTabView::OnActivateView

Called by the framework when the tab view is made active or inactive.


使用CTabView要特别注意获取视图的指针的操作,一般的途径获取只能获取CTabView里面的当前View不能获取到CTabView指针,必须通过下面方法获取,以下为在主框架获取CTabView视图指针的示例:

void  CMainFrame:: OnGetBlog() 
{   

    CChildFrame * pChildFrm =  ( CChildFrame *) GetActiveFrame();  

    CView *  pView =  pChildFrm-> GetActiveView(); 

    CMFCTabCtrl *  pParent1 =  ( CMFCTabCtrl *) pView-> GetParent(); 

    CXXXTabView *  pTabView =( CXXXTabView *)  pParent1-> GetParent();  

    pTabView-> OnBlog();    //调用CTabView视图类里面的函数
}

要禁止CTabView里面的Tab拖动,只需要在CTabView里面调用下面:

this -> GetTabControl().EnableTabSwap( FALSE );

一些CTabView样式设置,如下:

void  CXXXTabView:: OnInitialUpdate() 
{ 

    CTabView:: OnInitialUpdate(); 

    AddView ( RUNTIME_CLASS ( CView1),  _T( " simple " ),  100 ); 

    this -> GetTabControl().SetLocation( CMFCTabCtrl:: LOCATION_TOP);    //方向上顶
    this -> GetTabControl().ModifyTabStyle( CMFCTabCtrl:: STYLE_3D_ONENOTE);    //风格
    this -> GetTabControl().EnableAutoColor( TRUE );  //自动着色
    this -> GetTabControl().SetTabBorderSize( 2 ); //边框大小
    this -> GetTabControl().HideSingleTab( TRUE );   //单个Tab时候不显示Tab标签
    this -> GetTabControl().EnableTabSwap( FALSE );    //禁止拖动
}

若是要禁止CTabView上的滚动条,只要在CTabView的头文件上,定义以下函数即可:

BOOL  IsScrollBar ()  const 
{ 

    return  FALSE ; 
}

在基于CTabView的多文档中,遍历每个CTabView视图可以通过获取框架指针。下面是关闭除当前视图外的其余视图:

void CMainFrame::OnFileAllClose()
{

    CMDIFrameWnd *pFrame = (CMDIFrameWnd*)AfxGetApp()->m_pMainWnd;

    CMDIChildWnd *pChild = (CMDIChildWnd*)pFrame->GetActiveFrame();   

    CView * pView;

    CMFCTabCtrl * pParent1;

    CXXXTabView * pTabView;

    CDocument* pDoc;

    CMDIChildWnd *pChild2=pFrame->MDIGetActive();

    if (pFrame)

    {

        //依次关闭右边视图
        pFrame->MDINext();

        pChild2=pFrame->MDIGetActive();

        while (pChild2!=pChild)

        {           

            pView = pChild2->GetActiveView();

            pParent1 = (CMFCTabCtrl *)pView->GetParent();

            pTabView =(CXXXTabView *) pParent1->GetParent();

            pDoc = pTabView->GetDocument();    

            pDoc->OnCloseDocument();         

            pChild2=pFrame->MDIGetActive();

        }

        //依次关闭左边视图
        pFrame->MDIPrev();

        pChild2=pFrame->MDIGetActive();

        while (pChild2!=pChild)

        {

            pView = pChild2->GetActiveView();

            pParent1 = (CMFCTabCtrl *)pView->GetParent();

            pTabView =(CXXXTabView *) pParent1->GetParent();

            pDoc = pTabView->GetDocument();    

            pDoc->OnCloseDocument();

            pFrame->MDIPrev();

            pChild2=pFrame->MDIGetActive();

        }

    }    
}

更多的资料,可以参考MSDN。

【VS开发】CTabView多页卡界面的更多相关文章

  1. TabLayout和ViewPager简单实现页卡的滑动

    首先需要在当前的module中的build Gradle的 dependencies中加入以下句子 compile 'com.android.support:design:23.0.1' 因为我们用到 ...

  2. 高效开发 Web 单页应用解决方案

    于 2017 年初,有在 Github 建立并维护一个项目:Vue Boilerplate Template,欲成就一款开箱即用 Vue + Webpack 的脚手架模版:其目标与宗旨是:根据以往经验 ...

  3. [课程设计]Scrum 1.3 多鱼点餐系统开发进度(系统主界面框架&美化)

    Scrum 1.3 多鱼点餐系统开发进度(系统主界面框架&美化) 1.团队名称:重案组 2.团队目标:长期经营,积累客户充分准备,伺机而行 3.团队口号:矢志不渝,追求完美 4.团队选题:餐厅 ...

  4. ViewPager设置 缓存个数、页卡间距、数据更新

    在使用ViewPager常用设置 1)mViewPager.setOffscreenPageLimit(2);//设置缓存view 的个数(实际有3个,缓存2个+正在显示的1个)2)mViewPage ...

  5. android SlidingTabLayout实现ViewPager页卡滑动效果

    先来张效果图(能够滑动切换页卡) watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvcGVuZ2t2/font/5a6L5L2T/fontsize/400/fi ...

  6. ViewPager实现页卡的3种方法(谷歌组件)

    ----方法一:---- 效果图: 须要的组件: ViewPager+PagerTabStrip 布局文件代码: <!--xmlns:android_custom="http://sc ...

  7. ViewPager实现页卡的最新方法--简洁的TabLayout(谷歌支持包)

    效果图: 添加依赖包: compile ‘com.android.support:design:‘ 布局文件: <?xml version="1.0" encoding=&q ...

  8. HorizontalScrollView做页卡的一个小记录

    用HorizontalScrollView做页卡,实现一个如下图的效果:

  9. SNF快速开发平台3.0之-界面个性化配置+10种皮肤+7种菜单-Asp.net+MVC4.0+WebAPI+EasyUI+Knockout

    一.个性配置-首页:可以进行拖动保存配置,下次登录时就会按配置的进行加载 二.个人配置页面 7种菜单用户可自定义配置,和预览效果 10种皮肤自定义配置,和预览效果 皮肤和菜单可以随意组合-部分截图: ...

随机推荐

  1. vue_03 练习

    1.有以下广告数据(实际数据命名可以略做调整) ad_data = { tv: [ {img: 'img/tv/001.png', title: 'tv1'}, {img: 'img/tv/002.p ...

  2. CodeForces 839B - Game of the Rows | Codeforces Round #428 (Div. 2)

    血崩- - /* CodeForces 839B - Game of the Rows [ 贪心,分类讨论] | Codeforces Round #428 (Div. 2) 注意 2 7 2 2 2 ...

  3. [Python自学] day-18 (1) (JS正则、第三方组件)

    一.JS的正则表达式 JS正则提供了两个方法: test():用于判断字符串是否符合规定: exec():获取匹配的数据: 1.test() 定义一个正则表达式: reg = /\d+/; // 用于 ...

  4. 1250 Fibonacci数列(矩阵乘法)

    1250 Fibonacci数列 时间限制: 1 s 空间限制: 128000 KB 题目等级 : 钻石 Diamond 题目描述 Description 定义:f0=f1=1, fn=fn-1+fn ...

  5. 百度AI接口调用

    创建应用 登录网站 登录www.ai.baidu.com 进入控制台 进入语音技术 创建应用 管理应用 技术文档 SDK开发文档 接口能力 版本更新记录 注意事项 目前本SDK的功能同REST API ...

  6. 用sql语句查询一列名中的各个数值的个数

    SELECT COUNT(case when f.fileState=2 then 0 end) as fixed,COUNT(case when f.fileState=3 then 0 end) ...

  7. 单调队列优化DP——习题收集

    前言 感觉可以用单调队列优化dp的模型还是挺活的,开个随笔记录一些遇到的比较有代表性的模型,断续更新.主要做一个收集整理总结工作. 记录 0x01 POJ - 1821 Fence,比较适合入门的题, ...

  8. ubuntu 文件管理器 异常 强制关闭

    搜索进程号 ps -A | grep nautilus 杀掉 sudo kill xxxxx

  9. node.js获取ip及mac

    ; (function (win) { var os = require('os'); var ifaces = os.networkInterfaces(); function NetworkUti ...

  10. windows下安装MongoDB服务

    1,参考:https://www.cnblogs.com/lecaf/p/mongodb.html 2,要设置环境变量 3,设置用户 use admin  注:MongoDB安装好以后由默认的admi ...