主题

1.
选项卡控件基础

2.
显示图标的选项卡

3.
选项卡控件高级

4.

5.

    

属性

    

选项卡控件基础

1.插入1个对话框,新建1个类 CCDialog1,1
个对话框对应一个TAB属性页面

 
2.对话框设置属性
    Style:Child,
    Border:None
3. 定义公共变量
双击 DIALOG1的OK按钮

 
 
    CDialog1 m_page1;
    CDialog2 m_page2;
    CDialog3 m_page3;
给TABCTRL 关联一个控件变量
    CTabCtrl    m_tab1;
    
4 代码如下::OnInitDialog()

    // TODO: Add extra initialization here
    m_tab1.InsertItem(0,"AA");
    m_tab1.InsertItem(1,"BB");
    m_tab1.InsertItem(2,"CC");
    m_page1.Create(IDD_DIALOG1,&m_tab1);
    m_page2.Create(IDD_DIALOG2,&m_tab1);
    m_page3.Create(IDD_DIALOG3,&m_tab1);
        
    CRect rect;
    m_tab1.GetClientRect(rect);
    rect.DeflateRect(2,30,2,2);
            
    m_page1.MoveWindow(&rect);
    m_page2.MoveWindow(&rect);
    m_page3.MoveWindow(&rect);
    
    m_page1.ShowWindow(SW_SHOW);
    m_page2.ShowWindow(SW_HIDE);
    m_page3.ShowWindow(SW_HIDE);
     
    m_tab1.SetCurSel(0);
 
5 为双击tabctrl添加OnSelchangeTab1消息
void CMfc01Dlg::OnSelchangeTab1(NMHDR* pNMHDR, LRESULT* pResult) 
{
    // TODO: Add your control notification handler code here
    int nCurSel = m_tab1.GetCurSel();
    switch(nCurSel)
    {
    case 0:
        m_page1.ShowWindow(SW_SHOW);
        m_page2.ShowWindow(SW_HIDE);
        m_page3.ShowWindow(SW_HIDE);
        break;
    case 1:
        m_page1.ShowWindow(SW_HIDE);
        m_page2.ShowWindow(SW_SHOW);
        m_page3.ShowWindow(SW_HIDE);
        break;        
    case 2:
        m_page1.ShowWindow(SW_HIDE);
        m_page2.ShowWindow(SW_HIDE);
        m_page3.ShowWindow(SW_SHOW);
        break;    
    }

*pResult = 0;

}
    
效果图:

    
    
 
 

显示图标的选项卡

1.
在资源中插入3个ICON

2.
为主对话框的 CMFC01dlg添加变量

    CImageList m_imgLst1;//如果这个变量声明放在初始化这个地方
则图标显示不不出来
 
    
 
    // TODO: Add extra initialization here
    m_imgLst1.Create(24,24,ILC_COLOR24|ILC_MASK,1,1);
    m_imgLst1.Add(LoadIcon(AfxGetResourceHandle(),MAKEINTRESOURCE(IDI_ICON1)));
    m_imgLst1.Add(LoadIcon(AfxGetResourceHandle(),MAKEINTRESOURCE(IDI_ICON2)));    
    m_imgLst1.Add(LoadIcon(AfxGetResourceHandle(),MAKEINTRESOURCE(IDI_ICON3)));
    m_tab1.SetImageList(&m_imgLst1);
    
    m_tab1.InsertItem(0,"AA",0);
    m_tab1.InsertItem(1,"BB",1);

m_tab1.InsertItem(2,"CC",2);

效果图

注:本代码这是片段代码,在上面
的完整代码的基础上的

图片列表使用

CImageList
imglst;

imglst.Create();

imgLst.Add();

imgLst.SetImageList(&imglst);

 
 

附件列表

C++ Code_TabControl的更多相关文章

随机推荐

  1. 第一个UI脚本--python+selenium

    之前一直是用java+selenium做自动化测试的,最近因为工作需要,需要用pyhton+selenium去实现,于是就赶驴上架,熟悉了一下python的语法和脚本的编写过程,下面是一个简单的脚本, ...

  2. 一.JSP开发的工具下载与环境搭建

    JSP技术的强势: (1)一次编写,到处运行.在这一点上Java比PHP更出色,除了系统之外,代码不用做任何更改. (2)系统的多平台支持.基本上可以在所有平台上的任意环境中开发,在任意环境中进行系统 ...

  3. Python编程中的反模式

    Python是时下最热门的编程语言之一了.简洁而富有表达力的语法,两三行代码往往就能解决十来行C代码才能解决的问题:丰富的标准库和第三方库,大大节约了开发时间,使它成为那些对性能没有严苛要求的开发任务 ...

  4. jQuery Mobile 页面事件总结

    一.页面初始化事件(Page initiallization) 在页面创建前,当页面创建时,以及在页面初始化之后.只在第一次加载时执行. 1. pagebeforecreate 页面创建前 [sour ...

  5. 从四大音乐APP首页设计对比分析产品方向

    原帖:http://www.ui.cn/detail/63201.html 本文章中作者例举四个音乐APP应用:虾米.网易.百度.QQ首页 1. 推荐内容:作者将四个首页界面划分出官方推荐与个性化推荐 ...

  6. Python 最佳实践

    前言 对我来说,以前每次面试是我审视自己,检验自己的一种方式.每次准备面试,以及被面试官问住的时候才会发现,其实我python我学的还不够好.工作中也是,可以从其他的同事那里获得成长.但是我今天说的是 ...

  7. .net调用java webservice基于JBOSS服务器 学习笔记(一)

    1.遇到数组类型或List等复杂数据类型是,需要对其进行包装,就是将复杂数据类型放到一个类里面: public class VOCargoJTWS { /** JT列表 */ private List ...

  8. c# 运行时替换某文件源代码(将XML 转换成 某个枚举并写入源文件)

    var sr = new StreamReader(Server.MapPath("~/WEB-INF/rule.config")); XmlDocument doc = new ...

  9. 转】MyEclipse使用总结——MyEclipse10安装SVN插件

    原博文出自于: http://www.cnblogs.com/xdp-gacl/p/3497016.html 感谢! 一.下载SVN插件subclipse 下载地址:http://subclipse. ...

  10. POJ 1039 Pipe(直线和线段相交判断,求交点)

    Pipe Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 8280   Accepted: 2483 Description ...