VC中使用TAB Control控制項

2021-09-30 04:03:21 字數 965 閱讀 5561

vc中使用tab control控制項

假如我現在有個sdi程式,view是form view,想在上面放個tab control,包含兩個page。現在讓我們來看看應該怎樣處理。

首先當然要增加乙個tab control資源,然後利用class wizard,在view中增加乙個control變數。

接著建立兩個對話方塊資源,別忘了把style改為child,border改為none。然後就可以在上面加其他控制項了。

接著利用class wizard,分別為這兩個對話方塊建立兩個類,比如cpage1和cpage2。

然後在view類標頭檔案中,加入這兩個對話方塊物件。同時增加乙個變數int m_curseltab,用了表明是哪個page即將被切換。

為了避免使用者在切換tab時,程式對tab index的列舉,可以利用陣列來做這個事情。

在view的初始化函式中需要把cpage1、cpage2和tab control關聯起來,並儲存頁面位址,設定初始頁面,等等。

void ctab_testview::oninitialupdate()

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

使用者切換時,需要響應相關的訊息。

void ctab_testview::onselchangetab1(nmhdr* pnmhdr, lresult* presult) 

首先我們先把當前的頁面隱藏起來,然後得到新的頁面索引,最後就把相關頁面顯示出來即可。這比乙個個去列舉簡單多了。

還有一點比較有意思,那就是ddx/ddv機制的運用。要想獲得tab control各個頁面的資料,可以利用ddx/ddv機制,但需要注意,因為這是多個頁面,所以需要顯式呼叫多次。

void ctab_testview::onbutton1() 

經過這幾步處理,基本上我們就可以利用tab control的強大功能了。

在MFC中使用Tab Control

說實話,我剛開始看見tab control的時候,覺得很簡單。哪知道用了一下,才發現自己錯了。要用好它,還是需要一些技巧的。經過網上搜尋資料,以及我自己的摸索,把一些要點記錄在這裡。tab control的執行效果有點像property sheet,但兩者還是有一些區別。我的理解就是property...

VC控制項 Tab Control

1 新增上乙個tab control 控制項 為這個控制項新增乙個變數,如 m tabctrl 2 建立兩個新的對話方塊資源,其屬性作如下修改 border none 邊界為空,這樣它就沒了標題欄 style child 這樣這個模板就可以當作另乙個視窗的子視窗了。可在上面加一些控制項,具體操作跟普...

VC 使用Tab Control 控制項的例子

1 首先建立乙個mfc對話方塊框架,在對話方塊資源上從工具箱中新增上乙個tab control 控制項,根據需要修改一下屬性,然後右擊控制項,為這個控制項新增乙個變數,將此控制項跟乙個ctabctrl類變數繫結在一起,這裡設為m tabctrl 2 建立兩個新的對話方塊資源,其屬性作如下修改 bor...