CTabCtrl控制項使用

2021-05-23 12:57:45 字數 1457 閱讀 4629

vc中的ctabctrl用法與vb、delphi的選項卡控制項有很大的不同,每個屬性頁是用乙個「窗體」(對話方塊)來實現,於是要為每個屬性頁對話方塊建類,還要關聯、初始化……實在麻煩得多。但是ctabctrl可重用性比activex的選項卡控制項好,因為乙個屬性頁可以被多個不同的選項卡對話方塊呼叫,就像mfc中很多屬性選項卡有「general」這一選項頁,可以被多個控制項的屬性頁呼叫,作為「通用」的,有符合現代軟體工程可重用性要求。

下面發乙個最簡單的**,使用ctabctrl控制項實現屬性頁功能

1、建立乙個基於對話方塊的應用程式;

2、畫ctabctrl控制項,類嚮導中關聯變數名為m_tab,新建三個對話方塊屬性設為style:child,border:none,

用classwizard生成新的類,基類為cdialog,分別為cpage0,cpage1,cpage2,id號分別為idd_dialog0,idd_dialog1,idd_dialog2。在主對話方塊中加入三個變數,cpage0page0;cpage1page1;cpage2page2。別忘了在主對話方塊的標頭檔案中要加入

#include"page0.h"

#include"page1.h"

#include"page2.h"

3、在主對話方塊的oninitdialog()內初始化:

//todo:addextrainitializationhere

//初始化m_tab控制項

m_tab.insertitem(0,"第一頁");

m_tab.insertitem(1,"第二頁");

m_tab.insertitem(2,"第三頁");

//建立屬性頁各頁

page0.create(idd_dialog0,getdlgitem(idc_tab1));

page1.create(idd_dialog1,getdlgitem(idc_tab1));

page2.create(idd_dialog2,getdlgitem(idc_tab1));

//設定頁面的位置在m_tab控制項範圍內

crectrect;

m_tab.getclientrect(&rect);

rect.top+=20;

rect.bottom-=4;

rect.left+=4;

rect.right-=4;

page0.movewindow(&rect);

page1.movewindow(&rect);

page2.movewindow(&rect);

page1.showwindow(true);

m_tab.setcursel(1);

4、m_tab控制項屬性頁選擇時顯示各頁:

voidcmy3dlg::onselchangetab1(nmhdr*pnmhdr,lresult*presult)

*presult=0;

}

CTabCtrl分頁控制項的使用

1.插入三個對話方塊,id為預設的idd dialog1 idd dialog2 idd dialog3。設定對話方塊屬性border none style child 2.雙擊對話方塊,為其新增類,cdlg1 cdlg2 cdlg3 3.在主對話方塊的標頭檔案中新增對三個對話方塊類標頭檔案的引用 ...

CTABCTRL分頁控制項的使用

1.插入三個對話方塊,id為預設的idd dialog1 idd dialog2 idd dialog3。設定對話方塊屬性border none style child 將沒有工具欄等東東 2.通過快速建立 為其新增類,cdlg1 cdlg2 cdlg3 3.在主對話方塊的標頭檔案中新增對三個對話方...

使用CTabCtrl控制項實現屬性頁功

使用ctabctrl控制項實現屬性頁功能 vc中的ctabctrl用法與vb delphi的選項卡控制項有很大的不同,每個屬性頁是用乙個 窗體 對話方塊 來實現,於是要為每個屬性頁對話方塊建類,還要關聯 初始化 實在麻煩得多。但是ctabctrl可重用性比activex的選項卡控制項好,因為乙個屬性...