MFC中tab control

新建一个MFC对话框程序

新建3个对话框

添加一个tab control控制,调整好大小

为tab control控件添加变量m_tab


首先去边框,

为下面两个对话框添加类d1,d2




新建变量


在初始化函数中

// 设置此对话框的图标。当应用程序主窗口不是对话框时,框架将自动
	//  执行此操作
	SetIcon(m_hIcon, TRUE);			// 设置大图标
	SetIcon(m_hIcon, FALSE);		// 设置小图标

	// TODO: 在此添加额外的初始化代码


	m_tab.InsertItem( 0, _T("Tab1") );  
	m_tab.InsertItem( 1, _T("Tab2") );  

	//创建两个对话框
	D1.Create(IDD_DIALOG1, &m_tab);//&m_tab也可以改成Tab的ID
	D2.Create(IDD_DIALOG2, &m_tab);


	D1.ShowWindow(SW_HIDE);
	D2.ShowWindow(SW_HIDE);

为tab control控件添加事件

void CMFC选项卡Dlg::OnTcnSelchangeTab1(NMHDR *pNMHDR, LRESULT *pResult)
{
	// TODO: 在此添加控件通知处理程序代码

	//GetCurSel返回当前被选中的标签的索引号(以0为基础算起)  
	int sel = m_tab.GetCurSel();  

		CRect rc;
	m_tab.GetWindowRect(rc);////获得TAB控件的坐标
	//定位选项卡页的位置,这里可以根据情况自己调节偏移量
	rc.top += 20;
	rc.bottom -= 0;
	rc.left += 0;
	rc.right -= 0;



	//将子页面移动到指定的位置
	D1.MoveWindow(&rc);
	D2.MoveWindow(&rc);
	switch(sel)  
	{  
	case 0:  
	D1.ShowWindow( SW_SHOW );  
	D2.ShowWindow( SW_HIDE );  
	break;  
	case 1:  
	D1.ShowWindow( SW_HIDE ); 
	D2.ShowWindow( SW_SHOW );  
 
	break;  
	}  

	*pResult = 0;
}

为2个对话框添加串口跟随事件

void CMFC选项卡Dlg::OnMoving(UINT fwSide, LPRECT pRect)
{
	CDialogEx::OnMoving(fwSide, pRect);

			CRect rc;
	m_tab.GetWindowRect(rc);////获得TAB控件的坐标
	//定位选项卡页的位置,这里可以根据情况自己调节偏移量
	rc.top += 20;
	rc.bottom -= 0;
	rc.left += 0;
	rc.right -= 0;



	//将子页面移动到指定的位置
	D1.MoveWindow(&rc);
	D2.MoveWindow(&rc);


	// TODO: 在此处添加消息处理程序代码
}

猜你喜欢

转载自blog.csdn.net/HES_C/article/details/80361815
今日推荐