MFC中Tab控件的使用方法



在MFC应用程序中,使用Tab控件的步骤如下:

(1)在界面上添加一个Tab控件,绑定一个对应的控制变量,可命名为m_ctrlTab;

(2)创建两个或多个子对话框,记得调整其属性:

Border:none              // 去掉子窗口边框

Style:Child                 // 作为其他窗口的子窗口

当然,还可以修改一下对话框的名称等,针对子窗口的编辑跟其他窗口是一样的。同时为每一个子窗口创建相应的类。

(3)在主窗口类中添加子窗口类的对象成员,例如:

CDialog1  m_Dialog1;

CDialog2  m_Dialog2;

(4)在主窗口类的OnInitDialog()函数中添加:

// 创建标签页

TCITEM tabItem;

tabItem.mask = TCIF_TEXT;

tabItem.pszText = "通道配置";

m_ctrlTab.InsertItem(0, &tabItem);

tabItem.pszText = "端口配置";

m_ctrlTab.InsertItem(1, &tabItem);

// 创建标签页子窗口

m_Dialog1.Create(IDD_DIALOG1, &m_ctrlTab);

m_Dialog2.Create(IDD_DIALOG2, &m_ctrlTab);

// 窗口布局

CRect tabRect;
 m_ctrlTab.GetClientRect(&tabRect);
 tabRect.left += 5;
 tabRect.right -= 5;
 tabRect.top += 25;
 tabRect.bottom -= 10;
 m_Dialog1.SetWindowPos(NULL, tabRect.left, tabRect.top, tabRect.Width(), tabRect.Height(), SWP_SHOWWINDOW);
 m_Dialog2.SetWindowPos(NULL, tabRect.left, tabRect.top, tabRect.Width(), tabRect.Height(), SWP_HIDEWINDOW);

(5)为主窗口中的Tab控件添加一个TCN_SELCHANGE消息的相应函数,在该函数内实现标签页的切换效果:

void CFdcDlg::OnSelchangeTab1(NMHDR* pNMHDR, LRESULT* pResult) 
{
    CRect tabRect;
    m_ctrlTab.GetClientRect(&tabRect);
    tabRect.left += 5;
    tabRect.right -= 5;
    tabRect.top += 25;
    tabRect.bottom -= 10;

    switch (m_ctrlTab.GetCurSel())
    {
    case 0:
     m_Dialog1.SetWindowPos(NULL, tabRect.left, tabRect.top, tabRect.Width(), tabRect.Height(), SWP_SHOWWINDOW);
     m_Dialog2.SetWindowPos(NULL, tabRect.left, tabRect.top, tabRect.Width(), tabRect.Height(), SWP_HIDEWINDOW);
     break;

    case 1:
     m_Dialog1.SetWindowPos(NULL, tabRect.left, tabRect.top, tabRect.Width(), tabRect.Height(), SWP_HIDEWINDOW);
     m_Dialog2.SetWindowPos(NULL, tabRect.left, tabRect.top, tabRect.Width(), tabRect.Height(), SWP_SHOWWINDOW);
     break;

   }

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值