MFC TabContrl 使用

MFC tabContrl 使用

tabContrl 和Qt 中的TabWidget 有说不一样 ,不会在页面上点击Tab就会自动跳转,然后在里面添加布局。而MFC 中TabControl 跟Qt 中的stackWidget 类似,通过切换下标的方式 切换所属页面。每个页面都是一个单独的类。

TabContrl 在面板的创建
在这里插入图片描述
三个子页面的创建
页面一:
在这里插入图片描述
页面二:
在这里插入图片描述
页面三:
在这里插入图片描述
构造函数中设置tab的三个标题,创建出三个子页面 ,通过类的句柄ID ,添加到tabContrl中。获得TabContrl的页面大小。并设置三个子页面的大小就可以。

//TAB, 加入标签页
	m_Tab.InsertItem(0, L"基本情况", 0);
	m_Tab.InsertItem(1, L"私人资料", 1);
	m_Tab.InsertItem(2, L"单位信息", 2);

	m_ChildDlg1.Create(IDD_CHILD_DLG1, &m_Tab);
	m_ChildDlg2.Create(IDD_CHILD_DLG2, &m_Tab);
	m_ChildDlg3.Create(IDD_CHILD_DLG3, &m_Tab);

	//调整窗口的大小
	CRect rect;
	m_Tab.GetClientRect(&rect);
	//m_Tab.GetWindowRect()

	//让tab漏出边框,对子窗口大小进行调整
	rect.top += 22;  //22 是tab标签的高度
	rect.left += 1;
	rect.right -= 3;
	rect.bottom -= 2;

	m_ChildDlg1.MoveWindow(&rect);
	m_ChildDlg2.MoveWindow(&rect);
	m_ChildDlg3.MoveWindow(&rect);

	m_ChildDlg1.ShowWindow(SW_SHOW);
	m_ChildDlg2.ShowWindow(SW_HIDE);
	m_ChildDlg3.ShowWindow(SW_HIDE);

添加tabContrl的控件事件 选择tab页
在这里插入图片描述

void Cclass03Dlg::OnTcnSelchangeTab1(NMHDR *pNMHDR, LRESULT *pResult)
{
	// TODO:  在此添加控件通知处理程序代码
	int sel = m_Tab.GetCurSel();  //获取当前选择项

	m_ChildDlg1.ShowWindow(SW_HIDE);
	m_ChildDlg2.ShowWindow(SW_HIDE);
	m_ChildDlg3.ShowWindow(SW_HIDE);

	switch (sel)
	{
	case 0: m_ChildDlg1.ShowWindow(SW_SHOW); break;
	case 1: m_ChildDlg2.ShowWindow(SW_SHOW); break;
	case 2: m_ChildDlg3.ShowWindow(SW_SHOW); break;
	}

	*pResult = 0;
}

完成后的页面
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值