CTabCtrl的使用

Posted 朱小勇

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了CTabCtrl的使用相关的知识,希望对你有一定的参考价值。

1、在主窗口中定义一个CtabCtrl,添加变量m_tabctrl;

2、添加两个子窗口IDD_ONE_DIALOG,IDD_TWO_DIALOG,属性为child和无边框

3、在主窗口头文件中定义这两个子窗口的类对象m_one,m_two

自定义下面函数,放在初始化函数里面,就给这个tab生成了两个界面

void CDlg::AddTab()
{
CRect rect;
this->GetClientRect(&rect);
m_tabctrl.InsertItem(0, _T("1"));
m_tabctrl.InsertItem(1, _T("2"));
m_server.Create(IDD_ONE_DIALOG, &m_tabctrl);
m_server.SetWindowPos(NULL, 0, 20, rect.Width(), rect.Height(), SWP_SHOWWINDOW);
m_client.Create(IDD_TWO_DIALOG, &m_tabctrl);
m_client.SetWindowPos(NULL, 0, 20, rect.Width(), rect.Height(), SWP_HIDEWINDOW);
}

4、重写OnTcnSelchangeTab(NMHDR *pNMHDR, LRESULT *pResult)虚函数

通过下面来显示或者隐藏对应项

switch (m_tabctrl.GetCurSel())
{
  case 0:
    {
    m_server.SetWindowPos(NULL, 0, 20, rect.Width(), rect.Height(), SWP_SHOWWINDOW);
    m_client.SetWindowPos(NULL, 0, 20, rect.Width(), rect.Height(), SWP_HIDEWINDOW);
    break;
    }
  case 1:
    {
    m_server.SetWindowPos(NULL, 0, 20, rect.Width(), rect.Height(), SWP_HIDEWINDOW);
    m_client.SetWindowPos(NULL, 0, 20, rect.Width(), rect.Height(), SWP_SHOWWINDOW);
    break;
    }

 

以上是关于CTabCtrl的使用的主要内容,如果未能解决你的问题,请参考以下文章

MFC:如何识别对话框是不是是使用 CPropertySheet 或 CTabCtrl 创建的

如何更改CTabCtrl选项卡颜色?

创建从 CTabCtrl 派生的类

如何调整 CTabCtrl 的大小以适合其内容

MFC CTabCtrl如何为选项卡添加关闭按钮

使 MFC CTabCtrl 不使用绘图选项卡的完整控件宽度