一文详解MFC Tab Control 选项卡控件

boyanx7天前技术教程4

Tab Control 控件

CTabCtrl是Tab Control控件类,可以将多个对话框集合到一个页面中,通过切换标签达到切换页面的效果,实现选项卡功能。

初始化选项卡

给tab控件绑定变量m_tab,通过InsertItem添加tab的标题,常用参数1表示tab下标序号,参数2为标题文字,参数3本样例未给出,为图标列表的序号,需要添加图标可以启用参数3。

m_tab.InsertItem(0, _T("Page1"));
m_tab.InsertItem(1, _T("Page2"));
m_tab.InsertItem(2, _T("Page3"));
m_tab.InsertItem(4, _T("Page4"));
m_tab.InsertItem(4, _T("Page5"));
m_tab.InsertItem(5, _T("Page6"));

添加对话框资源

仅仅初始化如上6个tab标签,切换时界面并没有发生变化,还需要创建对应6个界面,即6个对话框。

对话框是一种资源,在资源视图-对话框-鼠标右键单击-插入,本样例只给出两个对话框,其余操作都是相同的。

每个对话框放置一个按钮或者其他类型控件作为区分:

此处注意属性设置,样式:Child,边框:None:

然后再给对应对话框添加类,会自动生成对应.h头文件和.cpp文件:

关联子对话框和m_tab:

m_dlg_page1.Create(IDD_DLG_PAGE1, &m_tab);
m_dlg_page2.Create(IDD_DLG_PAGE2, &m_tab);

子控件区域比m_tab要小一些,先获取m_tab位置,在其基础上缩小,然后放置子控件。默认选择下标为0的tab和第一个对话框:

CRect rect;
m_tab.GetClientRect(rect);
rect.top += 30;
rect.left += 8;
rect.right -= 8;
rect.bottom -= 8;
m_dlg_page1.MoveWindow(rect);
m_dlg_page2.MoveWindow(rect);

m_tab.SetCurSel(0);
m_dlg_page1.ShowWindow(SW_SHOW);

添加切换tab事件

void CDemoDlg::OnTcnSelchangeTab(NMHDR* pNMHDR, LRESULT* pResult)
{
	switch (m_tab.GetCurSel())
	{
	case 0:
		m_dlg_page1.ShowWindow(SW_SHOW);
		m_dlg_page2.ShowWindow(SW_HIDE);
		break;
	case 1:
		m_dlg_page1.ShowWindow(SW_HIDE);
		m_dlg_page2.ShowWindow(SW_SHOW);
		break;
	default:
		break;
	}
	*pResult = 0;
}
标签: tab切换

相关文章

「干货」用Tableau实现tab切换——维度作为tab切换主键

Tab切换是Tableau重要且经常用到的实用功能,那么,如何快速有效的根据一个维度切换,与之相关的图表也随着变化呢,先看一下成果具体的实现方法:【制作步骤】①准备一份原始数据,我准备的是一份exce...

react做tab切换的几种方式

最近搞一个pc端的活动,搞了一个多月,甚烦,因为相比于pc端,更喜欢移动端多一点。因为移动端又能搞我的react了.今天主要总结一下react当中tab切换的几种方式,因为tab切换基本上都会用到。当...

一招解决电脑上按键“Alt+TAB”后无法切换任务的问题

在 Windows 10 /11的系统中,当用“Alt + Tab”这一键盘快捷键时,便会开启任务切换器。这是一种能够让两个应用程序或任何其他正在运行的任务之间往复查看并切换的体验。但小编最近发现,在...

常用SOLIDWORKS快捷键,建议收藏

不论office还是WPS不论PS、PR还是AU不论Python、还是SOLIDWORKS熟练使用快捷键总能带来意想不到的高效和便捷普华工程师给大家整理出一些常用的SOLIDWORKS快捷键快来loo...

邮件项目左侧tab切换,右侧主体内容联动的技术实现思考过程

大家都使用过outlook,在outlook的左侧会有各种文件夹(比如收件箱、已发送邮件),点击文件夹,右侧会打开对应文件夹内的邮件,切换不同文件夹,会继续打开之前打开的邮件。我们自己的邮件项目怎么实...

按tab键就切换窗口怎么取消

Tab键是键盘上一个常用的功能键,通常用于在打开的程序或文件之间进行快速切换。然而,有时Tab键可能会被设置为自动切换窗口,这可能不符合用户的预期。本文将指导您如何取消Tab键切换窗口的功能。按tab...

发表评论    

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。