mfc之tabcontrol的用法(非tabsheet)


一、新建一個MFC工程, 取名Tabctrl, 選擇基於對話框, 然后點完成。

 
二、刪除對話框上默認添加的三個控件,添加Tab Control控件,屬性設置:ID:IDC_TAB1 

 

三、 為Tab Control控件綁定控件變量,變量名為m_Tab,類型為CTabCtrl。


四、在TabCtrlDlg.cpp文件中,找到初始化函數OnInitDialog並在里面添加如下代碼: 
                                   //分欄,分為第一頁第二頁

  m_Tab.InsertItem(0,_T(“第一頁”));  
     m_Tab.InsertItem(1,_T(“第二頁”));

五、在對話框資源里面添加兩個對話框資源,

第一個對話框:

刪除對話框上默認添加的三個控件;屬性設置:border設置為None;style設置為child, ID為IDD_PAGE1;添加靜態文本框,改為“第一頁”;再為其添加對應的基於CDialog類CPage1。

第二個對話框:

刪除對話框上默認添加的三個控件;屬性設置:border設置為None;style設置為child, ID為IDD_PAGE2;添加靜態文本框,改為“第二頁”;添加對應的基於CDialog類CPage2。

 

六、 在TabCtrlDlg.h中包含頭文件並添加兩個個成員變量m_Page1, m_ Page 2,如下:

        #include "Page1.h"

#include "Page1.h"

        CPage1 m_Page1; 

        CPage2 m_Page2; 

七、 在TabCtrlDlg.cpp對話框的初始化函數OnInitDialog里面添加如下代碼: 


//關聯對話框,並且將IDC_TABTEST控件設為父窗口 
m_Page1.Create(IDD_PAGE1,GetDlgItem(IDC_TAB1)); 
  m_Page2.Create(IDD_PAGE2,GetDlgItem(IDC_TAB1));
 
//獲得IDC_TABTEST客戶區大小 
CRect rs; 
m_tab.GetClientRect(&rs); 
//調整子對話框在父窗口中的位置 
rs.top+=30; 
rs.bottom-=60; 
rs.left+=1; 
rs.right-=2; 
 
//設置子對話框尺寸並移動到指定位置 
m_Page1.MoveWindow(&rs); 
m_ Page a2.MoveWindow(&rs); 
 
//分別設置隱藏和顯示 
m_ Page 1.ShowWindow(true); 
m_ Page 2.ShowWindow(false); 
 
//設置默認的選項卡 
m_Tab.SetCurSel(0);

 

八、 選擇Tab Control控件,右擊/添加事件處理程序,消息類型TCN_SELCHANGE,事件響應函數OnSelchangeTabtest(NMHDR* pNMHDR, LRESULT* pResult) ,

函數體代碼如下:

int CurSel = m_Tab.GetCurSel(); 
 switch(CurSel) 


case 0:       

 m_Page1.ShowWindow(true); 

m_ Page2.ShowWindow(false); 

break;

case 1:       

 m_Page1.ShowWindow(true); 

m_ Page2.ShowWindow(false); 

break;

default: 

 }  
 *pResult = 0;}


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM