科技行者

行者学院 转型私董会 科技行者专题报道 网红大战科技行者

知识库

知识库 安全导航

至顶网软件频道基础软件VC++中Tab键控制问题的解决办法

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

  • 扫一扫
    分享文章到微信

  • 扫一扫
    关注官方公众号
    至顶头条

做作vc界面的都知道,如果在遇到多个控件用tab ctrl分组显示时是一件很繁琐的事情。

作者:佚名 来源:论坛 2007年10月20日

关键字: VC++ Tab 控制 解决办法

  • 评论
  • 分享微博
  • 分享邮件
做作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;//父窗体指针
  };

查看本文来源

    • 评论
    • 分享微博
    • 分享邮件
    邮件订阅

    如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。

    重磅专题
    往期文章
    最新文章