MFC之Tab Control简单使用

本文介绍了如何在MFC中使用Tab Control控件实现界面切换功能。通过在对话框中添加Tab Control,声明CTabCtrl变量,插入和配置子对话框,关联并显示页面,以及处理Tab Control的选中变化事件,实现了在不同功能页面间的切换。详细步骤包括创建和关联对话框,设置页面布局,以及添加消息处理程序。

    Tab Control是MFC中一个常用的功能,可实现切换界面,将不同功能的控件放置在不同页面中。

1.在工具栏中选择Tab Control控件,将控件大小拉满整个对话框,如图:

2.在对话框类中声明一个 CTabCtrl变量:

CTabCtrl m_tab;

变量用于与Tab Control控件交互,为此要在DoDataExchange函数中加入DDX_Control语句:

DDX_Control(pDX, IDC_TAB1, m_tab);    //IDC_TAB1为控件ID

3.选择资源视图插入两个测试页面,右键点击Dialog,选择插入Dialog中,作为Tab Control控件切换的界面,然后将插入的对话框的Border属性设置为None,Style设置为Child,设置后的效果如下图所示:

4.为创建的两个话框建立类,如DlgSS、DlgFinance。添加类的方法:右击对话框界面,在弹出框中选择添加类;

5.在Tab Control控件所在的对话框类的头文件中添加插入的页面对话框的头文件,然后添加以下内容:

int m_FuncTab;
    DlgSS m_page0;    //没加头文件会报错
    DlgFinance m_page1;//没加头文件会报错
    std::vector<CDialog*> m_pDialog;  //用来保存对话框对象指针,记得添加vector的头文件
    afx_msg void OnTcnSelchangeTab1(NMHDR *pNMHDR, LRESULT *pResult);

6.在对话框类的初始化函数中需要把DlogSS和Tab Control关联起来,并保存页面地址,设置初始页面,在OnInitDialog()中添加以下实现代码:

  

    // 为Tab Control增加页面
    m_tab.InsertItem(0, _T("测试0"));
    m_tab.InsertItem(1, _T("测试1"));

    //创建对话框
    m_page0.Create(IDD_DIALOG_SS, &m_tab);
    m_page1.Create(IDD_DIALOG_Finance, &m_tab);
    //设定在Tab内显示的范围
    CRect rc;
    m_tab.GetClientRect(rc);
    rc.top += 20;
    rc.bottom -= 0;
    rc.left += 0;
    rc.right -= 0;
    m_page0.MoveWindow(&rc);    //设置子对话框尺寸并移动到指定位置
    m_page1.MoveWindow(&rc);    //设置子对话框尺寸并移动到指定位置

    //把对话框对象指针保存起来
    m_pDialog.push_back(&m_page0);
    m_pDialog.push_back(&m_page1);
    //显示初始页面
    m_pDialog[0]->ShowWindow(SW_SHOW);
    
    //保存当前选择
    m_FuncTab = 0;

7.为Tab Control添加消息处理程序,双击Tab Control控件,自动进入消息处理程序代码:

8.运行结果如图:

 

本文参考的资料有:http://blog.csdn.net/hustspy1990/article/details/5425365

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值