zoukankan      html  css  js  c++  java
  • CTabCtrl

    CTabCtrl - 如何使用TabCtrl控件

    建立一个基于对话框的MFC应用程序TabCtrlTest

    Step 1:在资源视图中,新建对话框资源,资源ID:IDD_TabCtrlExample_DLG,添加类:CTabCtrlExamlpeDlg。

    Step 2:在对话框视图中加入CTabCtrl控件,资源ID:IDD_TAB1,添加控件变量:m_ctlTabInfo。

    Step 3:新建两个对话框:

    对话框ID

    添加类

    设置对话框属性

    补充

    对话框1

    IDD_Test1_DlG

    CTest1

    Border:None

    Styles:Child

    界面可自行设计

    对话框2

    IDD_Test2_DlG

    CTest2

    在CTabCtrlExamlpeDlg定义两个成员变量:

    public:
             CTabCtrl m_ctlTabInfo;
             CTest1 m_test1Page;//界面1
             CTest2 m_test2Page;//界面2


    Step 4:重写CTabCtrlExamlpeDlg::OnInitDialog()函数

    (类视图下,选中CCTabCtrlExamlpeDlg类,右键属性,单击属性界面右边第一个正方体图标,双击OnInitDialog即可)

    BOOL CTabCtrlExamlpeDlg::OnInitDialog()
    {
        CDialog::OnInitDialog();
    
        // TODO:  在此添加额外的初始
    #pragma region 初始化TabCtrl控件
        //首先,为各Tab页添加标题
        m_ctlTabInfo.InsertItem(0,_T("界面一")); 
        m_ctlTabInfo.InsertItem(2,_T("界面二")); 
    
        //第二,建立各Tab页
        m_test1Page.Create(IDD_Test1_Dlg, GetDlgItem(IDC_TAB1));
        m_test2Page.Create(IDD_Test2_Dlg, GetDlgItem(IDC_TAB1));
    
        //第三,设置页面的位置在m_ctlTabInfo控件范围内
        CRect rc;
        m_ctlTabInfo.GetClientRect(rc);
        rc.top += 21;
        rc.bottom -= 1;
        rc.left += 1;
        rc.right -= 1;
    
        m_test1Page.MoveWindow(rc);
        m_test1Page.ShowWindow(SW_SHOW);
        m_test2Page.MoveWindow(rc);
        m_test2Page.ShowWindow(SW_HIDE);
    #pragma endregion
    
        return TRUE;  // return TRUE unless you set the focus to a control
        // 异常: OCX 属性页应返回 FALSE
    }


    Step 5:响应TabCtrl控件的TCN_SELCHANGE消息,实现切换页面功能。

    (右键TabCtrl控件à添加事件处理程序à选中TCN_SELCHANGE消息à添加编辑)

    void CTabCtrlExamlpeDlg::OnTcnSelchangeTab1(NMHDR *pNMHDR, LRESULT *pResult)
    {
        // TODO: 在此添加控件通知处理程序代码
        *pResult = 0;
        switch (m_ctlTabInfo.GetCurSel())
        {
        case 0:
            m_test1Page.ShowWindow(SW_SHOW);
            m_test2Page.ShowWindow(SW_HIDE);
            break;
        case 1:
            m_test1Page.ShowWindow(SW_HIDE);
            m_test2Page.ShowWindow(SW_SHOW);
            break;
        default:
            break;
        }
    }
  • 相关阅读:
    C#反射
    做下一周计划
    OFFSET 函数
    微信跳一跳学习笔记
    跳一跳脚本代码搬运
    预测羽毛球赛成绩学习笔记
    将Python123中作业成绩绘制成雷达图
    Matplotlib库
    Numpy库
    第四周作业
  • 原文地址:https://www.cnblogs.com/whl2012/p/4790194.html
Copyright © 2011-2022 走看看