MFC之Tab Control标签控件

MFC

一.简介

这篇说一下Tab Control标签控件,我们以实际的例子进行说明,实现的功能就是点击不同的标签来切换到不同的画面

二.操作

  1. 在窗口界面上鼠标右键标签控件,选择添加变量 m_tab,
  2. 定义操作各界面的类变量,这里我们添加3个标签页,3个标签页对应三个窗口界面,注意添加个界面头文件(在含有标签页窗口的.h文件中)
CT1Dlg m_1Dlg;       //界面1
CT2Dlg m_2Dlg;       //界面2
CT3Dlg m_3Dlg;       //界面3
  1. 设置表头 在OnInitDialog()初始化函数中人添加如下代码
	CRect tabRect;   // 标签控件客户区的位置和大小   
	m_tab.InsertItem(0, _T("标签1"));  //插入第一个标签
	m_tab.InsertItem(1, _T("标签2"));  //插入第二个标签
	m_tab.InsertItem(2, _T("标签3"));  //插入第三个标签
	
	// IDD_T1_DIALOG,IDD_T2_DIALOG,IDD_T3_DIALOG为三个窗口的ID 
	m_1Dlg.Create(IDD_T1_DIALOG, &m_tab); //创建标签第一个标签页
	m_2Dlg.Create(IDD_T2_DIALOG, &m_tab);  // 创建第二个标签页   
	m_3Dlg.Create(IDD_T3_DIALOG, &m_tab);   // 创建第三个标签页   
	
	m_tab.GetClientRect(&tabRect);    // 获取标签控件客户区Rect   
	// 调整tabRect,使其覆盖范围适合放置标签页   
	tabRect.left += 1;
	tabRect.right -= 1;
	tabRect.top += 25;
	tabRect.bottom -= 1;
	
	// 根据调整好的tabRect放置m_1Dlg子对话框,并设置显示  
	m_1Dlg.SetWindowPos(NULL, tabRect.left, tabRect.top, tabRect.Width(), tabRect.Height(), SWP_SHOWWINDOW);
	// 根据调整好的tabRect放置m_2Dlg子对话框,并设置为隐藏 
	m_2Dlg.SetWindowPos(NULL, tabRect.left, tabRect.top, tabRect.Width(), tabRect.Height(), SWP_HIDEWINDOW);
	// 根据调整好的tabRect放置m_3Dlg子对话框,并设置为隐藏 
	m_3Dlg.SetWindowPos(NULL, tabRect.left, tabRect.top, tabRect.Width(), tabRect.Height(), SWP_HIDEWINDOW);
  1. 添加标签控件的回调函数,鼠标左键双击标签控件,在回调函数中添加如下代码
void CEmptyDlg::OnTcnSelchangeTab1(NMHDR *pNMHDR, LRESULT *pResult)
{
	// TODO: 在此添加控件通知处理程序代码
	*pResult = 0;
	CRect tabRect;    // 标签控件客户区的Rect   

   // 获取标签控件客户区Rect,并对其调整,以适合放置标签页   
	m_tab.GetClientRect(&tabRect);
	tabRect.left += 1;
	tabRect.right -= 1;
	tabRect.top += 25;
	tabRect.bottom -= 1;

	switch ( m_tab.GetCurSel() )
	{
		// 显示m_1Dlg,隐藏其他
	case 0:
		m_1Dlg.SetWindowPos(NULL, tabRect.left, tabRect.top, tabRect.Width(), tabRect.Height(), SWP_SHOWWINDOW);
		m_2Dlg.SetWindowPos(NULL, tabRect.left, tabRect.top, tabRect.Width(), tabRect.Height(), SWP_HIDEWINDOW);
		m_3Dlg.SetWindowPos(NULL, tabRect.left, tabRect.top, tabRect.Width(), tabRect.Height(), SWP_HIDEWINDOW);
		break;
		// 显示m_2Dlg,隐藏其他
	case 1:
		m_1Dlg.SetWindowPos(NULL, tabRect.left, tabRect.top, tabRect.Width(), tabRect.Height(), SWP_HIDEWINDOW);
		m_2Dlg.SetWindowPos(NULL, tabRect.left, tabRect.top, tabRect.Width(), tabRect.Height(), SWP_SHOWWINDOW);
		m_3Dlg.SetWindowPos(NULL, tabRect.left, tabRect.top, tabRect.Width(), tabRect.Height(), SWP_HIDEWINDOW);
		break;
		//显示m_3Dlg,隐藏其他
	case 2:
		m_1Dlg.SetWindowPos(NULL, tabRect.left, tabRect.top, tabRect.Width(), tabRect.Height(), SWP_HIDEWINDOW);
		m_2Dlg.SetWindowPos(NULL, tabRect.left, tabRect.top, tabRect.Width(), tabRect.Height(), SWP_HIDEWINDOW);
		m_3Dlg.SetWindowPos(NULL, tabRect.left, tabRect.top, tabRect.Width(), tabRect.Height(), SWP_SHOWWINDOW);
		break;	
	default:
		break;
	}
}
  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 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、付费专栏及课程。

余额充值