MFC中tab control

xiaoxiao2021-02-28  33

新建一个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: 在此处添加消息处理程序代码 }
转载请注明原文地址: https://www.6miu.com/read-2624518.html

最新回复(0)