【VS开发】CTabView多页卡界面
转载地址: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.
Public Methods
Name |
Description |
---|---|
Adds a new view to the tab control. |
|
Returns the index of the specified view in the tab control. |
|
Returns a pointer to the currently active view |
|
Returns a reference to the tab control associated with the view. |
|
Removes the view from the tab control. |
|
Makes a view active. |
Protected Methods
Name |
Description |
---|---|
Called by the framework when creating a tab view to determine whether the tab view has a shared horizontal scroll bar. |
|
Called by the framework when the tab view is made active or inactive. |
使用CTabView要特别注意获取视图的指针的操作,一般的途径获取只能获取CTabView里面的当前View不能获取到CTabView指针,必须通过下面方法获取,以下为在主框架获取CTabView视图指针的示例:
{
CChildFrame * pChildFrm = ( CChildFrame *) GetActiveFrame();
CView * pView = pChildFrm-> GetActiveView();
CMFCTabCtrl * pParent1 = ( CMFCTabCtrl *) pView-> GetParent();
CXXXTabView * pTabView =( CXXXTabView *) pParent1-> GetParent();
pTabView-> OnBlog(); //调用CTabView视图类里面的函数
}
要禁止CTabView里面的Tab拖动,只需要在CTabView里面调用下面:
一些CTabView样式设置,如下:
{
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的头文件上,定义以下函数即可:
{
return FALSE ;
}
在基于CTabView的多文档中,遍历每个CTabView视图可以通过获取框架指针。下面是关闭除当前视图外的其余视图:
{
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 Code 配置 C/C++ 环境(转)
- 【VS开发】 Windows平台下管道的使用
- 【VS开发】如何判断客户端SOCKET已经断开连接?
- 【VS开发】最小化到托盘 shell_notifyicon和NOTIFYICONDATA
- 【VS开发】TCP服务端如何判断客户端断开连接
- 【VS开发】fatal error C1853: "Debugsift.pch"预编译头文件来自编译器的早期版本
- 【VS开发】winsock 错误多 windows.h和winsock2.h的顺序
- 【VS开发】【C/C++开发】C++参数策略传递内存
- 【神经网络与深度学习】【CUDA开发】【VS开发】Microsoft官方移植了Caffe配置过程说明
- 【VS开发】error C2220: 警告被视为错误 - 没有生成“object”文件
- 【VS开发】使用WinPcap编程(4)——把网络数据包存储到一个文件中
- 【VS开发】如何移植对话框?
- 【VS开发】Windows上的音频采集技术
- 【VS开发】ActiveX控件如何定制属性?
- 【VS开发】动态添加的ActiveX控件如何响应事件
- 【VS开发】VC++ 获取系统时间、程序运行时间(精确到秒,毫秒)的五种方法
- 【VS开发】VC++ 获取系统时间、程序运行时间(精确到秒,毫秒)的五种方法
- 【VS开发】关于各种View的实现总结
- 【VS开发】使用CTabView分割多页卡窗口
- 【VS开发】修改窗口背景颜色大全
- 【VS开发】socket编程原理
- 【VS开发】recv函数函数返回值说明(特别有利于工程调试)
- 【VS开发】内存映射文件3
- 【VS开发】VS2010 MFC中控件、对话框等背景颜色动态修改的方法
- 异常点VS高杠杆点VS强影响点(Outlier,High Leverage Point,Influential Point)
- [JS] Topic - Object.create vs new
- 【转载】VS写汇编程序01:VS2015配置汇编语言开发环境
- ASP.NET Core – MVC vs Razor Page
- QT VS 菜单栏/工具栏按钮的访问
- Github域名加上1s,在线VS Code阅读源码神器诞生
- React JSX vs Vue 模板:前端界的一次对决
- 使用VS Code从零开始开发调试.NET 5