Tab Control控制項使用的例子(網摘)

來源:互聯網
上載者:User
Tab Control控制項使用的例子

1、首先建立一個MFC對話方塊架構,在對話方塊資源上從工具箱中添加上一個Tab Control 控制項,根據需要修改一下屬性,然後右擊控制項,為這個控制項添加一個變數,將此控制項跟一個CTabCtrl類變數綁定在一起,這裡設為m_tabctrl
2、建立兩個新的對話方塊資源,其屬性作如下修改:
Border:none //邊界為空白,這樣它就沒了標題列
Style :Child // 這樣這個模板就可以當作另一個視窗的子視窗了。
其它如果沒有必要,就不用改了。
在上面加一些控制項什麼的,具體操作跟普通對話方塊沒有區別。
完成後從這兩個對話方塊模板產生兩個新的對話方塊類。
3、在主對話方塊中為新添加進來的兩個類增加兩個變數:
如:CDialog1 m_mm1;
CDialog2 m_mm2;
4、在主對話方塊的OnInitDialog()函數中添加如下類似的代碼:
TCITEM item;
item.mask = TCIF_TEXT;
item.pszText = "第一頁";

m_tabctrl.InsertItem (0,&item);
item.pszText ="第二頁";
m_tabctrl.InsertItem (1,&item);

m_mm1.Create (IDD_DIALOG1,&m_tabctrl);
m_mm2.Create (IDD_DIALOG2,&m_tabctrl);

m_mm1.SetWindowPos (NULL,10,30,400,100,SWP_SHOWWINDOW);
m_mm2.SetWindowPos (NULL,10,30,400,100,SWP_HIDEWINDOW );
解釋如下:
兩個InsertItem函數的調用是為了給標籤控制項增加兩個標籤頁面,文本是標題。
SetWindowPos()函數設定這兩個對話方塊在Z順序中的位置,顯示或隱藏狀態.。
5、在主對話中為標籤控制項添加一個標籤選擇改變(TCN_SELCHANGE)的控制項通知訊息,以便在使用者選擇標籤時通知主對話方塊。在主對話方塊的編輯介面右擊標籤控制項,選擇添加一個事件可以完成這個操作。
在事件處理中添加如下代碼,如下例:
void CtabdialogDlg::OnTcnSelchangeTab1(NMHDR *pNMHDR, LRESULT *pResult)
{
CRect r;
m_tabctrl.GetClientRect (&r);

switch(m_tabctrl.GetCurSel())
{
case 0:
m_mm1.SetWindowPos (NULL,10,30,r.right -20,r.bottom -40,SWP_SHOWWINDOW);
m_mm2.SetWindowPos (NULL,10,30,r.right -20,r.bottom -40,SWP_HIDEWINDOW );
break;
case 1:
m_mm1.SetWindowPos (NULL,10,30,r.right -20,r.bottom -40,SWP_HIDEWINDOW);
m_mm2.SetWindowPos (NULL,10,30,r.right -20,r.bottom -40,SWP_SHOWWINDOW );
break;
}
*pResult = 0;
}
要想知道使用者選擇那個標籤頁,要通過m_tabctrl.GetCurSel() 函數。為了不使顯示的子對話方塊覆蓋標籤控制項的顯示,所以要獲得標籤控制項的尺寸然後設定各頁面的尺寸。

或者:

m_Tab.InsertItem(0,"第一頁");
m_Tab.InsertItem(1,"第二頁");
m_Tab.InsertItem(2,"第三頁");
m_Tab.InsertItem(3,"第四頁");

m_PageA.Create(IDD_PROPPAGE_A,&m_Tab);
m_PageB.Create(IDD_PROPPAGE_B,&m_Tab);
m_PageC.Create(IDD_PROPPAGE_C,&m_Tab);
m_PageD.Create(IDD_PROPPAGE_D,&m_Tab);

m_PageA.ShowWindow(SW_SHOW);
m_PageB.ShowWindow(SW_HIDE);
m_PageC.ShowWindow(SW_HIDE);
m_PageD.ShowWindow(SW_HIDE);

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.