visual c++中标签控件(Tab Control)
标签控件(Tab Control)
1.概述
标签控件也称选项卡控件,是一个分割多页面的窗口,每个页面都匹配有一个带有标题的标签,当用鼠标单击一个标签就显示对应的页面。标签在Windows应用程序中是非常常见的。
标签控件在功能上等同于一系列对话框窗口,但使用起来更接近于人们的使用习惯。编程时使用标签控件,用户就可以在一个窗口的相同区域内定义多个页面,其中,每个页面上包括一些不同的控件,以实现不同的对话框功能。
标签是作为控件使用的,所以它不允许编程时直接在各个标签上添加控件,只能在选中不同标签时,在相同位置显示含有不同控件对象的对话框。与一般的MFC编程类似,这些作为“标签页”显示的对话框可以作为资源添加到项目中。事实上,标签控件实现的是在不同对话框之间切换,而不只是标签页上控件的显示切换。
标签控件有几个属性读者需要了解一下:Alignmet下拉列表框用于设置每个标签的宽度。它有几个选项:right justify是默认值,它表示每个标签的宽度随着标题长度自动调节;fixed width为固定宽度。Buttons表示标签采取按钮形状;Multiline表示标签可以多行的形式显示;Hottrack表示当光标通过一个标签时,标签标题呈蓝色显示;Bottom表示标签位于控件的底端;Vertical表示标签以垂直方式出现。
在MFC中,与标签对应的类是CTabCtrl,CTabCtrl类中重要的成员函数如表1所示。

表1 CTabCtrl类中常用的成员函数
在CTabCtrl类中的很多成员函数里都使用了TCITEM结构,该结构用于设置每一个标签的属性,其组成如下:
typedef struct tagTCITEM {
UINT mask;
DWORD dwState;
DWORD dwStateMask;
LPTSTR pszText;
int cchTextMax;
int iImage;
LPARAM lParam;
} TCITEM, FAR *LPTCITEM;
例如,如果想向CTabCtrl类对象中新插入一个标签,可以用下面的方法:
TCITEM item;
item.mask=TCIF_TEXT;
item.pszText="TabPageName";
m_Tab.InsertItem(m,&item);
2.CTabCtrl类应用实例
(1)新建一个基于对话框的应用程序CTab。
(2)向对话框资源中添加一个Tab Control控件。
(3)通过ClassWizard为这个控件建立一个相关联的成员变量m_Tab。
(4)单击主菜单中“Insert”/“Resource”菜单项,打开“Insert Resource”对话框,向项目中添加一个无边框的对话框资源,如图1所示。
选择FORMVIEW对话框资源
单击New按钮

图1 Insert Resource对话框
(5)在工作区(Workspace)中选中新添加的资源,单击鼠标右键,选择弹出菜单中的“Properties”菜单项,打开“Dialog Properties”对话框,并将“Language”组合框的值改为“China(P.R.C.)”,如图2所示。
语言选择汉语

图2 Dialog Properties对话框
(6)双击建立的资源,在编辑窗口中单击鼠标右键,打开“Dialog Properties”对话框,将其“ID”改为IDD_PAGE1(用户可以自己定义),并将字体改为“宋体,9号”,如图3所示。