MFC控件使用方法(十六、标签控件(Tab Control))

十六、标签控件(Tab Control)

作用:

在同一个区域显示不同的Dialog(对话框)

消息映射函数:

  • NM_CLICK :指示用户已在控件内单击了左键
  • NM_RCLICK : 指示用户已在控件中单击了鼠标右键
  • NM_RELEASDCHPYURE :将鼠标捕获释放通知父级
  • TCN_SELCHANGE : 指示选定已从一项变为另一项
  • TCN_SELCHANGING : 指示选定向即将从一项变为另一项

属性:

  • TCS_BUTTON 修改标签的外观,使它们看起来像按钮一样。
  • TCS_FIXEDWIDTH 使所有的标签都具有相同的宽度。(缺省的,标签控件自动调整每一个标签的尺寸使之适合于它的图标。)不能将此风格与TCS_RIGHTJUSTIFY风格要求使用。
  • · TCS_FOCUNEVER 表示一个标签永远也不会接收输入焦点。
  • TCS_FOCUSONBUTTONDOWN 表示当点击一个标签时它接收输入焦点。通常这个风格只与TCS_BUTTONS风格一起使用。
  • TCS_FORCEICONLEFT 将图标集中在左边,但标签标签仍然在中间。(缺省的,控件将图标和标签都放在中间,图标在标签的左边。)
  • TCS_FORCELABELLEFT 左对齐图标和标签。
  • TCS_MULTILINT 使一个标签控件显示多行标签。因此所有的标签都可以同时显示。(缺省的,一个标签控件只显示一行标签。)
  • TCS_OWNERDRAWFIXED 指定由父窗口在该控件中绘制标签。
  • TCS_RIGHTJUSTIFY 向右调整标签。(缺省的,标签在每一行中是向左调整的。)
  • TCS_SHAREIMAGELISTS 表示当一个标签控件被销毁时,不销毁它的图像列表。
  • TCS_TOOLTIPS 表示该标签控件具有一个与之关联的工具提示控件。
  • TCS_TABS 标签就显示为标签,并且在显示区域的周围绘制了边框。这个风格是缺省的。
  • TCS_SINGLELINE 只显示一行标签。用户可以根据需要通过滚动来查看更多的标签。这个风格是缺省的。
  • TCS_RAGGEDRIGHT 不拉伸每一行标签来使之适合控件的整个宽度。这个风格是缺省的。
    另外,你还可以将下面的窗口风格应用于一个标签控件:
  • WS_CHILD 创建一个代表标签控件的子窗口。不能
  • WS_POPUP风格一起使用。
  • WS_VISIBLE 创建一个初始可见的标签控件。
  • WS_DISABLED 创建一个初始无效的窗口。
  • WS_GROUP 指定一组控件中的第一个控件,在这组控件中用户可以使用箭头键从一个控件移动到另一个控件。在第一个控件后面的所有用WS_GROUP风格定义的控件都属于同一组。下一个具有WS_GROUP风格的控件结束这个风格组并开始下一个组(即,一组结束的地方就是另一组开始的地方)。
  • WS_TABSTOP 指定用户可以通过使用TAB键到达的控件。用户按TAB键可以到达下一个具有WS_TABSTOP风格的控件。

使用方法:

1、创建标签页的控件型变量或者使用GetDlgItem()函数获取标签页的空间的句柄

CTabCtrl m_tab;

2、初始化标签页,使用InsertItem()函数添加新的标签。

m_tab.InsertItem(0,_T("第一页"));
m_tab.InsertItem(1, _T("第二页"));

3、创建标签页要显示的窗口(注意窗口的style属性要是child属性,这样才能显示的出来)。

CTabFirst m_tabfirst; //第一个窗口对象
CTabSecond m_tabscond;//第二个窗口对象

4、使用Dialog中的Create问对话框模板资源,使其父窗口为标签控件。创建完成之后,必须使用ShowWindow(TRUE)函数显示标签页窗口,才能显示窗口。

	m_tabfirst.Create(MAKEINTRESOURCE(IDD_TABFIRST), &m_tab);
	m_tabscond.Create(MAKEINTRESOURCE(IDD_TABSECOND), &m_tab);

	CRect rect; 
	m_tab.GetClientRect(rect);//获取标签页的窗口大小。
	rect.top += 22;
	m_tabfirst.MoveWindow(rect);//将要显示的窗口调节之需要显示的位置。
	m_tabscond.MoveWindow(rect);
	m_tabfirst.ShowWindow(TRUE);//使用ShowWindow(TRUE)函数显示标签页窗口

4、创建TCN_SELCHANGE消息映射函数,通过GetCurSel函数获取当前选中的项。

void CCTabCtrlDlg::OnTcnSelchangeTab(NMHDR *pNMHDR, LRESULT *pResult)
{
	// TODO:  在此添加控件通知处理程序代码
	switch (m_tab.GetCurSel())
	{
	case 0:
		m_tabscond.ShowWindow(FALSE);
		m_tabfirst.ShowWindow(TRUE);
		break;
	case 1:
		m_tabfirst.ShowWindow(FALSE);
		m_tabscond.ShowWindow(TRUE);
		break;
	default:
		m_tabfirst.ShowWindow(TRUE);
		break;
	}
	*pResult = 0;
}
  • 3
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
MFC(Microsoft Foundation Classes)提供了Tab Control类来实现选项卡控件Tab Control是一种常见的界面布局,可以在一个窗口中切换显示不同的内容。 要在MFC应用程序中使用Tab Control,可以按照以下步骤进行操作: 1. 在资源编辑器中将一个Tab Control控件添加到你的对话框或窗口中。可以在工具栏上找到Tab Control控件,并将其拖放到对话框或窗口的位置。 2. 在类视图中找到对应的对话框类,并添加一个成员变量来控制Tab Control控件。右键单击对话框类,在上下文菜单中选择"Add Variable"。在对话框变量向导中,选择Tab Control控件,并为其添加一个成员变量。 3. 在对话框的OnInitDialog()函数中,使用Tab Control控件的成员变量来设置选项卡的标签和关联的对话框或窗口。可以使用TabCtrl_InsertItem()函数添加选项卡,使用TabCtrl_SetCurSel()函数设置当前选中的选项卡。 4.为每个选项卡关联一个对话框或窗口,以便在切换选项卡时显示相应的内容。可以使用Create()函数创建对应的对话框或窗口,并使用ShowWindow()函数显示或隐藏对话框或窗口。 5. 可以在选项卡切换时处理相应的消息,以便在切换选项卡时执行一些操作。可以在对话框类的OnSelChange()函数中处理WM_NOTIFY消息,使用TabCtrl_GetCurSel()函数获取当前选中的选项卡索引,并根据需要执行相应的操作。 以上是使用MFC Tab Control的基本步骤,你可以根据自己的需求进行进一步的定制和扩展。希望对你有所帮助!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值