Yesky首页| 产品报价| 行情| 手机 | 数码 | 笔记本 | 台式机 | DIY硬件 | 外设 | 网络 | 数字家庭 | 评测 | 软件 | e时代 | 游戏 | 图片 | 壁纸 | 群乐 | 社区 | 博客 | 下载
您现在的位置: 天极网 > 开发频道 > VC++中Tab键控制问题的解决办法
全文

VC++中Tab键控制问题的解决办法

2004-05-19 11:29 作者: 出处: 论坛 责任编辑:方舟
天极IT资讯短信服务 电脑小技巧
资费:包月5元
手机:
介绍:细处着手,巧处用功。高手和菜鸟之间的差别就是:高手什么都知道,菜鸟知道一些。电脑小技巧收集最新奇招高招,让你轻松踏上高手之路。

  做作vc界面的都知道,如果在遇到多个控件用tab分组显示时是一件很繁琐的事情,同时代码量也特别的大下面是我今天下午刚刚想出的一个自己认为满意的解决办法。
  
  主要思路如下:

  做一个类CTabContainer,在初始化的时候确定将控件id分成几组(也就是几个tab标签),然后为每一组做一个链表分别保存每一个tab下属的控件id集。这样的话,只需在对话框初始化时做好一个基本的设定,然后在OnSelchangeTab1写上m_pTabContainer->Show(m_tab.GetCurSel());就可以了。
  
  类的使用方法:
  
  在OnInitDialog()里面

  m_pTabContainer->Init(3,this);//3个tab标签按钮,this对话框指针。
  m_pTabContainer->AddCtrlId(0,IDC_BUTTON1);//IDC_BUTTON1加到第一组tab当中
  m_pTabContainer->AddCtrlId(0,IDC_BUTTON4);//下面类似
  m_pTabContainer->AddCtrlId(0,IDC_BUTTON5);
  m_pTabContainer->AddCtrlId(1,IDC_BUTTON2);
  m_pTabContainer->AddCtrlId(1,IDC_BUTTON6);
  m_pTabContainer->AddCtrlId(2,IDC_BUTTON3);
  m_pTabContainer->AddCtrlId(2,IDC_BUTTON7);
  m_pTabContainer->AddCtrlId(2,IDC_BUTTON8);
  m_pTabContainer->Show(0);//默认显示第一个标签下面的控件

  在控件TAb的事件OnSelchangeTab1

  m_pTabContainer->Show(m_tab.GetCurSel());即可

  另附类CTabContainer的源代码:

  classCTabContainer
  {
   public:
    CTabContainer();
    virtual~CTabContainer();
    CTabContainer(constCTabContainer&tabContainer);
    constCTabContainer&operator=(constCTabContainer&tabContainer);
  
    BOOLInit(intnTabs,CWnd*pParent);
  
    file://初始化tab,nTabs代表有几个按扭
    BOOLAddCtrlId(intnTab,intnID);//将id添加到哪个tab中
    BOOLDelete(intnTab,intnID);//删除id
    voidShow(intnTab);//当前显示哪个tab
    voidClear(void);//释放内存和清理工作
  
   protected:
    typedefCListCIntList;
    CIntList*m_pIDGroups;//指向链表的指针
    intm_nLCount;//链表的个数
    CWnd*m_pParent;//父窗体指针
  };



共1页。 1
网友关注
最新上市
编辑推荐
文章阅读排行
周排行
月排行
欢迎订阅天极网RSS聚合资讯:http://www.yesky.com/index.xml