龙空技术网

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

黑猫编程 357

前言:

目前姐妹们对“mfc文本框显示变量”都比较讲究,小伙伴们都想要知道一些“mfc文本框显示变量”的相关资讯。那么小编在网络上收集了一些有关“mfc文本框显示变量””的相关资讯,希望各位老铁们能喜欢,看官们快快来了解一下吧!

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;}

标签: #mfc文本框显示变量