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)虚函数

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

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的使用的更多相关文章

  1. 在CTabCtrl上动态创建CListCtrl控件

    m_List.Create(WS_OVERLAPPED|WS_CHILD|WS_VISIBLE|LVS_REPORT|LVS_AUTOARRANGE|LVS_SHOWSELALWAYS|LVS_EDI ...

  2. CTabCtrl - 如何使用TabCtrl控件

    CTabCtrl - 如何使用TabCtrl控件 建立一个基于对话框的MFC应用程序TabCtrlTest Step 1:在资源视图中,新建对话框资源,资源ID:IDD_TabCtrlExample_ ...

  3. CTabCtrl

    转载至 http://blog.csdn.net/jacklam200/archive/2008/08/01/2753797.aspx 一.在对话框视图中加入CTabCtrl控件 资源ID:IDC_T ...

  4. mfc CTabCtrl

    知识点: CTabCtrl常用属性 CTabCtrl类常用成员函数 CTabCtrl代码示例 一.CTabCtrl控件属性 Bottom:底部样式 Vertical:垂直样式 与Bottom结合使用, ...

  5. MFC控件CTabCtrl关联变量

    1.先建立一个对话框MFC应用程序,然后在工具箱里面把Tab Control控件放到对话框中的合适位置上. 再在对话框类中,将该控件绑定一个变量 用两种方法: 1 ) 自己定义成员变量 CTabCtr ...

  6. CTabCtrl控件标签的相关设置

    原文链接: http://blog.csdn.net/happyhell/article/details/6012177 1. 获得CTabCtrl标签高度:CRect rc; CTabCtrl *p ...

  7. duilib各种布局的作用,相对布局与绝对布局的的意义与用法

    大多数刚使用duilib的朋友时候非常依赖duilib自带的设计器,用他可以拖拉控件,可视化的做出自己想要的界面.可是用一段时间就会发现原带的设计器有很多bug,时不时会崩溃,支持的控件数量有限,属性 ...

  8. mfc ui3

    引用:http://www.cnblogs.com/rainbowzc/archive/2010/06/02/1749872.html 本文专题讨论VC中的界面美化,适用于具有中等VC水平的读者.读者 ...

  9. PeCheck

    早上起来看到这个代码  整理一下 // PETableDlg.cpp : 实现文件 // #include "stdafx.h" #include "PECheck.h& ...

随机推荐

  1. js this 闭包

    var myObject = { value :, increment:function (inc){ ; } }; myObject .increment(); console.log(myObje ...

  2. Deep Learning 深度学习 学习教程网站集锦

    http://blog.sciencenet.cn/blog-517721-852551.html 学习笔记:深度学习是机器学习的突破 2006-2007年,加拿大多伦多大学教授.机器学习领域的泰斗G ...

  3. 有关git的换行符的处理问题

    签入签出时对换行符的操作: #签出时将LF转换为CRLF,签入时将CRLF转换为LF git config --global core.autocrlf true #签出时不转换,签入时转换为LF g ...

  4. linux 压缩文件的命令总结

    Linux压缩文件的读取 *.Z       compress 程序压缩的档案: *.bz2     bzip2 程序压缩的档案: *.gz      gzip 程序压缩的档案: *.tar     ...

  5. html5的download下载标签

    Html5的下载标签download <a href="files/1.jpg" download="1.jpg">Download</a&g ...

  6. $.extend,$.fn.extend,$.fn的区别

    jQuery.extend(object) 为jQuery类添加类方法,可以理解为添加静态方法.如: jQuery.extend({ min: function(a, b) { return a &l ...

  7. 解决Android SDK Manager更新下载速度慢

    1.在Host文件加上 203.208.46.146 www.google.com 74.125.113.121 developer.android.com 203.208.46.146 dl.goo ...

  8. vsftp黑白名单设置及问题

    问题一:ftpusers和user_list两个文件各自的用途是什么?有何关系? 首先请明确一点:ftpusers不受任何配制项的影响,它总是有效,它是一个黑名单!该文件存放的是一个禁止访问FTP的用 ...

  9. spin_lock、spin_lock_irq、spin_lock_irqsave区别【转】

    转自:http://blog.csdn.net/luckywang1103/article/details/42083613 void spin_lock(spinlock_t *lock); voi ...

  10. Java中IO流中所涉及到的各类方法介绍

    IO流之字节流 (1)IO用于在设备间进行数据传输的操作 (2)分类: A:流向 输入流 读取数据 输出流 写出数据 B:数据类型 字节流 字节输入流 字节输出流 字符流 字符输入流 字符输出流 注意 ...