1. 程式人生 > >如何得到MFC多文件程式中子選項卡(Tab型別)的序號

如何得到MFC多文件程式中子選項卡(Tab型別)的序號

MFC多文件程式開啟多個子文件時,每個試圖都是一個選項卡,當我們點選一個選項卡啟用它時,如何知道我們啟用的是哪一個子選項卡?

方法:在主框架視窗CMainFrame類中新增訊息處理AFX_WM_CHANGING_ACTIVE_TAB

mainfrm.h中:

afx_msg LRESULT OnActivateTabChanged(WPARAM, LPARAM);

mainfrm.cpp中:

在訊息對映中新增:

ON_REGISTERED_MESSAGE(AFX_CHANGE_ACTIVE_TAB, &CMainFrame::OnActivateTabChanged)

在實現中新增:

LRESULT CMainFrame::OnActivateTabChanged(WPARAM wp, LPARAM lp)
{
    int tab = ((CMFCBaseTabCtrl*)lp)->GetActivateTab();
    return 0;
}

注意:實際使用時發現,選項卡的序號是從0開始,依次遞增,但是Tab樣式的多文件程式中,選項卡的位置是可以自由拖動變換的,位置改變以後,序號也相應改變,所以這個序號也不能被當做一個固定引數來代表各個選項卡。