您的位置:首页 > 其它

MFC中Tab控件的使用方法

2012-11-12 17:27 204 查看



在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;

}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: