本文实例讲述了Visual C++中Tab View的多种实现方法,分享给大家供大家参考。具体如下:
一、引言
标签控件(Tab Control)是VC++编程中经常使用的控件之一,它允许在单个对话框或窗口中设置多个页面,每个页面代表一组控件。当某个页面的标签被选中时,该页 面内的控件就会被显示出来。标签控件使得在有限的窗口空间内可以显示更多的信息,而且分类清晰。同时,VC++提供了以文档/视图 (Document/View)结构方式开发应用程序的简单方法,在文档中保存数据,在视图中显示数据。无论是在SDI还是MDI的程序中,每个文档可以 对应一个或多个是视图,但常常在显示数据时,需要将同一组数据用不同的视图显示,如列表视图、树型视图等,或者用一个视图显示一部分数据,用另一个视图显 示另一部分数据,并且希望能在同一个显示区显示,在需要时进行切换。将标签控制运用到多视图的切换中,就形成了Tab View。
通过上面的分析,我们不难发现,实现一个Tab View主要要完成以下两方面的工作:
① 实现一个标签窗口。它要具有绘制窗口、响应用户选择、判断处理用户选择等功能。本文对Tab View 实现方法的分类就是根据标签窗口不同划分的。
② 多个视图之间的切换。根据标签窗口判断用户选择的结果,从多个视图中选择一个,在显示区中显示。
本文分析和总结了三种Tab View的实现方法:
1)利用CTabCtrl控件实现Tab View.
2)利用CSheetCtrl标签选择窗口实现Tab View.
3)利用静态分割窗口实现Tab View.
二、CTabCtrl控件实现Tab View
CTabCtrl是MFC类库中定义的标准控件类,通过对消息TCN-SELCHANGE的处理以及运用函数GetCurSel()、 SetCurSel()等,可以很好地完成响应、判断和设置标签控制的工作,因此利用CTabCtrl控件实现Tab View是较容易的方法。
1.实现的主要类
//要切换显示的视窗口类
class CMyView1 : public CListView
class CMyView2 : public CView
//派生的标签控件类
class CViewTabCtrl : public CTabCtrl
//定义了Tab view的主窗口
class CTabCtrlV