• CTabCtrl的使用


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

    2、添加两个子窗口IDD_ONE_DIALOG,IDD_TWO_DIALOG(新建对话框,然后双击界面添加头文件和cpp),属性为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)虚函数

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

    CRect rect;
    this->GetClientRect(&rect);

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

      default:
        break;

     }

  • 相关阅读:
    NW.js开发环境的搭建
    EXPORTS与MODULE.EXPORTS的区别
    搭建 webpack + React 开发环境
    require,import区别?
    数据库中图片的二进制存储和显示
    二进制图片存储问题
    单线程(Thread)与多线程的区别
    软件测试心得--悲催我
    2015年-年度总结
    人生当中第一次转正
  • 原文地址:https://www.cnblogs.com/judes/p/6173532.html
Copyright © 2020-2023  润新知