CTabCtrl - 如何使用TabCtrl控件


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;
    }
}


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM