《实用VC编程之玩转控件》第14课:Tab标签控件

本文转载自:VC驿站

https://www.cctry.com/thread-297460-1-1.html

1、控件简介:
一个对话框界面的空间有限,如果需要放置很多控件的话恐怕摆不下而且也比较乱,这时候就可以使用 TabCtrl 标签页控件了。每个标签页下都可以作为一个单独的页面,对控件进行分组摆放。TabCtrl 控件也是其他很多软件经常用的一个控件。

2、控件类的封装:
正常来说Tab标签控件使用起来还是有点麻烦的,比如我们通过搜索几篇文章来看下:关键字:VC tab控件 使用
实际上TabCtrl标签页控件这东西就是用了一个障眼法,控件只是控件,只是进行切换用的,真正每个页面的东西是需要我们自己手动添加对话框资源来进行的。当点击标签页进行切换的时候,我们要用代码控制每个页面对话框的显示与隐藏。

大家看到了吧,又得创建子对话框,又得调整子对话框的坐标,每次切换标签的时候又得进行显示与隐藏,所以挺麻烦的。那么有什么简单的办法吗?答案就是封装啊!
这里我找到了好多年前我封装的一个Tab控件类,派生自 CTabCtrl,这几天我又针对已有代码优化了一下,拿出来与大家分享,这样封装完之后使用起来就简单很多了,接下来就教大家如何使用!
《实用VC编程之玩转控件》第14课:Tab标签控件 TabSheet.h (848 Bytes, 下载次数: 6) 《实用VC编程之玩转控件》第14课:Tab标签控件 TabSheet.cpp (2.71 KB, 下载次数: 5) 

3、控件的使用:
a、将 TabSheet.h 和 TabSheet.cpp 这两个文件放到 MFCTest 工程目录下,并导入到vs工程中;
b、拖拽Tab控件到对话框模版上;
c、为Tab控件绑定一个 CTabCtrl 控件类型变量m_Tab;
d、对话框类头文件中的 CTabCtrl m_Tab; 声明更改为:CTabSheet m_Tab; 即更改控件变量的类型,如果编译不通过,需要包含 TabSheet.h;
e、添加一个对话框资源作为第一子页,并绑定派生自 CDialog 的子对话框类:CPage1;
f、修改 CPage1 的对话框资源属性:Border:None,Style:Child
g、在主对话框类声明中加入第一子页的实例化对象:CPage1 m_page_1;
h、在主对话框的初始化函数中加入加载子页的代码:
    m_Tab.AddPage(_T("第一页"), &m_page_1, IDD_DIALOG1);
    m_Tab.Show();
i、添加第二个子页,以此类推!

怎么样,用起来方便不少吧?我是平时自己写点什么小软件之类的,要是用到TabCtrl了就用这个自己封装好的!

4、开源控件类:
https://www.codeproject.com/Arti ... ols-Borders-and-All
《实用VC编程之玩转控件》第14课:Tab标签控件 

https://www.codeproject.com/Arti ... rsion-of-CTreePropS
《实用VC编程之玩转控件》第14课:Tab标签控件 

https://www.codeproject.com/Arti ... -in-any-orientation
《实用VC编程之玩转控件》第14课:Tab标签控件 

https://www.codeproject.com/Arti ... lookBar-in-Mode2003
《实用VC编程之玩转控件》第14课:Tab标签控件 

https://www.codeproject.com/Arti ... l-Studio-NET-like-P
《实用VC编程之玩转控件》第14课:Tab标签控件 

具体操作细节见视频教程的演示和讲解!

第14课免费试看,下载地址:

https://www.cctry.com/thread-297460-1-1.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值