基於wince的MFC Tab Control控制項的使用

來源:互聯網
上載者:User

標籤:cPage   style   class   blog   code   ext   

1,先建立一個對話方塊MFC應用程式,然後在工具箱裡面把Tab Control控制項放到對話方塊中的合適位置上。

再在對話方塊類中,聲明一個CTabCtrl變數:

CTabCtrl m_tab;

變數m_tab用來與對話方塊中的Tab Control控制項互動,為此要在DoDataExchange函數中加入DDX_Control語句:

1     //{{AFX_DATA_MAP(CTABDlg)2     DDX_Control(pDX, IDC_TAB, m_tab);    3     //}}AFX_DATA_MAP

 

IDC_TAB是Tab Control控制項的ID。

 

2,建立兩個對話方塊程式,用來當做Tab Control控制項的兩個頁。別忘了把Style改為Child,Border改為None。然後就可以在上面加其他控制項了。

接著分別為這兩個對話方塊建立兩個類,比如CPage1和CPage2。

然後在對話方塊類標頭檔中,加入這兩個對話方塊對象。同時增加一個變數int m_CurSelTab,用了表明是哪個Page即將被切換。

int m_CurSelTab; 
CPage1 m_page1; 
CPage2 m_page2; 
CDialog* pDialog[2];  //用來儲存對話方塊對象指標

在對話方塊類的初始化函數中需要把CPage1、CPage2和Tab Control關聯起來,並儲存頁面地址,設定初始頁面。

 1 // TODO: Add extra initialization here 2     //初始化TAB 3     TCITEM tc1,tc2; 4     tc1.mask = TCIF_TEXT; 5     tc1.pszText = _T("第一頁"); 6     tc2.mask = TCIF_TEXT; 7     tc2.pszText = _T("第二頁"); 8  9     m_tab.InsertItem(0, &tc1);10     m_tab.InsertItem(1, &tc2); //到這裡只是添加了兩個tab頁11 12     CRect rec;13     m_tab.GetClientRect(&rec);//獲得TAB控制項的座標14 15     //定位索引標籤頁面的位置,這裡可以根據情況自己調節位移量16     rec.bottom -= 2;17     rec.left += 1;18     rec.top += 27;19     rec.right -= 3;20 21     //建立子頁面22     m_page1.Create(IDD_DIALOG1,GetDlgItem(IDC_TAB));23     m_page2.Create(IDD_DIALOG2,GetDlgItem(IDC_TAB));24 25     //將子頁面移動到指定的位置26     m_page1.MoveWindow(&rec);27     m_page2.MoveWindow(&rec);28 29     //顯示子頁面30     m_page1.ShowWindow(SW_SHOW);31     m_page2.ShowWindow(SW_HIDE);

 

3,接下來,為Tab Control添加訊息處理常式:

ON_NOTIFY(TCN_SELCHANGE, IDC_TAB1, &CTabDlg::OnTcnSelchangeTab1)

 1 // TODO: Add your control notification handler code here 2     switch(m_tab.GetCurSel()) 3     { 4         case 0: 5             m_page1.ShowWindow(SW_SHOW); 6             m_page2.ShowWindow(SW_HIDE); 7             break; 8         case 1: 9             m_page1.ShowWindow(SW_HIDE);10             m_page2.ShowWindow(SW_SHOW);11             break;12         default:13             break;14     }

搞定。

 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.