电竞比分网-中国电竞赛事及体育赛事平台

分享

VS下tab control使用方法(非常實(shí)用)

 haodafeng_org 2011-08-25

1. 在Visual Studio 2005中,新建一個項(xiàng)目,選擇MFC應(yīng)用程序, 取名MyTab, 選擇Dialog based(基于對話框), 然后Finish.
2. 刪除對話框上默認(rèn)添加的三個控件. 添加Tab Control控件,右鍵選擇“屬性”,并設(shè)置ID為IDC_TABMAIN。調(diào)速尺寸使其布滿整個對話框. 選中Tab Control控件,右鍵選擇“添加變量”,變量名為m_tabMain. 類型為CTabCtrl.
3. 在CXXXDlg類中的對話框初始化函數(shù)OnInitDialog里面添加如下代碼:

//添加選項(xiàng)卡
m_tabMain.InsertItem(0,_T("選項(xiàng)卡1"));//“選項(xiàng)卡1”可更改,是sheet頁的名字;
m_tabMain.InsertItem(1,_T("選項(xiàng)卡2"));
m_tabMain.InsertItem(2,_T("選項(xiàng)卡3"));

4.在資源視圖里的Dialog,點(diǎn)擊"Dialog”右鍵,選擇"插入Dialog”,插入三個Dialog, ID分別命名為IDD_DIALOG1, IDD_DIALOG2, IDD_DIALOG3(可根據(jù)具體Dialog的用途來命名). 每個Dialog的屬性中,style為Child, Border為None, 寬度調(diào)整下. 再分別為其添加對應(yīng)的基于CDialog類CDialog1, CDialog2, CDialog3.

5. 在類視圖中,點(diǎn)CMyTabDlg類右鍵,選擇添加變量,依次添加三個成員變量m_para1, m_para2, m_para3(命名也隨意,最好對應(yīng)著類), 分別是三個子對話框的實(shí)例. 代碼如下:

CDialog1 m_para1;
CDialog2 m_para2;
CDialog3 m_para3;

6. 在IDD_MYTAB_DIALOG對話框的初始化函數(shù)OnInitDialog里面添加如下代碼:

//關(guān)聯(lián)對話框,并且將IDC_TABMAIN控件設(shè)為父窗口
m_para1.Create(IDD_DIALOG1,GetDlgItem(IDC_TABMAIN));
m_para2.Create(IDD_DIALOG2,GetDlgItem(IDC_TABMAIN));
m_para3.Create(IDD_DIALOG3,GetDlgItem(IDC_TABMAIN));


//獲得IDC_tabMain客戶區(qū)大小
CRect rs;
m_tabMain.GetClientRect(&rs);

//調(diào)整子對話框在父窗口中的位置,可以改動數(shù)值,使子窗體的大小合適;
rs.top+=20;
rs.bottom-=3;
rs.left+=2;
rs.right-=2;

//設(shè)置子對話框尺寸并移動到指定位置
m_para1.MoveWindow(&rs);
m_para2.MoveWindow(&rs);
m_para3.MoveWindow(&rs);

//分別設(shè)置隱藏和顯示
m_para1.ShowWindow(true);
m_para2.ShowWindow(false);
m_para3.ShowWindow(false);

//設(shè)置默認(rèn)的選項(xiàng)卡
m_tabMain.SetCurSel(0);

7. 在資源視圖中,右鍵Tab Control,選擇“添加事件處理程序”,選擇TCN_SELCHANGE事件,事件處理程序名稱“OnTcnSelchangeTabmain”,這樣就有了切換sheet頁的響應(yīng)函數(shù)OnSelchangeTabmain(NMHDR* pNMHDR, LRESULT* pResult) ,函數(shù)體代碼如下:

// TODO: 在此添加控件通知處理程序代碼

int CurSel = m_tabMain.GetCurSel();
switch(CurSel)
{
case 0:
m_para1.ShowWindow(true);
m_para2.ShowWindow(false);
m_para3.ShowWindow(false);
break;
case 1:
m_para1.ShowWindow(false);
m_para2.ShowWindow(true);
m_para3.ShowWindow(false);
break;
case 2:
m_para1.ShowWindow(false);
m_para2.ShowWindow(false);
m_para3.ShowWindow(true);
break;
default:;
}
*pResult = 0;

8.現(xiàn)在在類視圖中,點(diǎn)根目錄mytab,右鍵選擇“生成”,應(yīng)該是一個成功的。

現(xiàn)在框架搭好了,只需要在資源視圖中的相應(yīng)的Dialog上作相應(yīng)的設(shè)計(jì)了

    本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多