中键控制问题的解决办法呢
做作vc界面的都知道,如果在遇到多个控件用tab分组显示时是一件很繁琐的事情,同时代码量也特别的大下面是我今天下午刚刚想出的一个自己认为满意的解决办法。
主要思路如下:
做一个类CTabContainer,在初始化的时候确定将控件id分成几组(也就是几个tab标签),然后为每一组做一个链表分别保存每一个tab下属的控件id集。这样的话,只需在对话框初始化时做好一个基本的设定,然后在OnSelchangeTab1写上m_pTabContainer-Show(m_tCurSel());就可以了。
类的使用方法:
在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_tCurSel());即可
另附类CTabContainer的源代码:
classCTabContainer
{
public:
CTabContainer();
virtual~CTabContainer();
CTabContainer(constCTabContainertabContainer);
constCTabContaineroperator=(constCTabContainertabContainer);
BOOLInit(intnTabs,CWnd*pParent);
BOOLAddCtrlId(intnTab,intnID);//将id添加到哪个tab中
BOOLDelete(intnTab,intnID);//删除id
voidShow(intnTab);//当前显示哪个tab
voidClear(void);//释放内存和清理工作
protected:
typedefCListCIntList;
CIntList*m_pIDGroups;//指向链表的指针
intm_nLCount;//链表的个数
CWnd*m_pParent;//父窗体指针
};
查看本文来源
南京市最好的性病医院武汉治疗前列腺炎费用
小孩积食怎么调理脾胃
- 我发现情商越高的人,在为人处世中,就会越“禁忌”这3条
- 同龄职场人自我救赎:只要开始一切都不晚。改变四种心理底层逻辑
- 曝张丹峰五一终于回家,拿到了洪欣的原谅,已经与毕滢彻底分手
- 发改委已向上海派驻工作组,建立企业“白名单”以稳供应链产业链
- 硬件不适合入手?装一台颜值逆天的办公主机吧
- 卢泰文慢看,比尔盖茨给三星做了一次广告
- 好言一句三冬暖,恶语出唇六月霜
- 佳发教育(300559.SZ)持股陈大强拟减持不超2%
- 林心如大女儿侧颜照大爆火!穿休闲装被惊艳到,完美继承爸妈优点
- 张嘉文尝试中单先攻流EZ,Q技能百发百中,领先对手一件单兵
- 徐濠萦携女儿逛街,14岁陈康堤五官像陈奕迅,大叔叔已到妈妈腰部
- 意甲:博洛尼亚vs泽尼特,抢分关键战泽尼特有惊无险?