MFC中Tab Control 控制項的使用

2021-06-20 13:45:08 字數 1849 閱讀 7251

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

再在對話方塊類中,宣告乙個ctabctrl變數:

ctabctrl m_tab;

變數m_tab用來與對話方塊中的tab control控制項互動,為此要在dodataexchange函式中加入ddx_control語句:

ddx_control(pdx, idc_tab1, m_tab);

idc_tab1是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關聯起來,並儲存頁面位址,設定初始頁面。

//為tab control增加兩個頁面
m_tab.insertitem(0, _t("farm"));
m_tab.insertitem(1, _t("note"));
//建立兩個對話方塊
m_page1.create(idd_dialog1, &m_tab);
m_page2.create(idd_dialog2, &m_tab);
//設定在tab內顯示的範圍
crect rc;
m_tab.getclientrect(rc);
rc.top += 20;
rc.bottom -= 0;
rc.left += 0;
rc.right -= 0;
m_page1.movewindow(&rc);
m_page2.movewindow(&rc);
//把對話方塊物件指標儲存起來
pdialog[0] = &m_page1;
pdialog[1] = &m_page2;
//顯示初始頁面
pdialog[0]->showwindow(sw_show);
pdialog[1]->showwindow(sw_hide);
//儲存當前選擇
m_curseltab = 0;

這裡我們用了乙個cdialog指標陣列來進行儲存tab control的每個頁,陣列的大小是tab control頁面的個數,陣列下標對應著每個頁面的索引(這樣方便快速訪問)。

接下來,為tab control新增訊息處理程式:

on_notify(tcn_selchange, idc_tab1, &ctabdlg::ontcnselchangetab1)

void ctabdlg::ontcnselchangetab1(nmhdr *pnmhdr, lresult *presult)

3.如果要在tab control控制項外面獲取其內部對話方塊中控制項的資料,就需要使用ddx/ddv機制,還要呼叫相應的updatedata函式。

m_page1.updatedata(); 

m_page2.updatedata();

MFC中Tab Control的使用

一 tabcontrol使用步驟 1 專案中新增2個檔案 ctabsheet.h和ctabsheet.cpp 2 新增tabcontrol控制項,新增變數m tab,注意變數型別為ctabsheet。3 新增2個視窗,設定屬性border為none,style為child,並且給2個視窗新增對應的....

MFC中Tab Control控制項的使用

一 建立tabcontrol控制項主要分為以下步驟 1.1將tabcontrol控制項拖入基本對話方塊中,並且建立乙個控制項變數m tab 1.2建立兩個子對話方塊,id分別改為idd dialog page1和idd dialog page2。1.3把兩個子對話方塊的屬性style改為child,...

MFC控制項程式設計 Tab Control

tab控制項的使用 1 插入tab控制項的資料項 標籤 ctabctrl insertitem 2 以tab控制項為父視窗建立對話方塊 3 調整對話方塊大小 4 在tab控制項的selchange訊息處理函式中,根據當前選項的索引設定對話方塊的顯示狀態。新建乙個基於對話方塊的工程,拖放乙個tab c...