MFC控件編程:Tab Control

Tab控件的使用
   1 插入Tab控件的數據項(標籤)
     CTabCtrl::InsertItem
   2 以Tab控件爲父窗口創建對話框
   3 調整對話框大小
   4 在Tab控件的SELCHANGE消息處理函數中,根據當前選項的索引設置對話框的顯示狀態。


   新建一個基於對話框的工程,拖放一個Tab Control控件,Ctrl+W 爲之綁定一個控件變量m_wndTabCtrl
   插入兩個對話框資源做爲標籤頁面,注意設置它們的樣式爲:child 和 無邊框
 
   
   雙擊對話框資源爲他們添加相關類,父類使用默認CDialog即可
   這裏類名爲CDialog1 和 CDialog2
   來到豬對話框類添加剛新建的對話框類的頭文件,然後添加兩個該類型的成員變量:
   CDialog1 m_dlg1;
   CDialog2 m_dlg2;
   然後來到主對話框的OnInitDialog函數中添加創建代碼,注意兩個對話框成員創建時要以主對話框爲父類創建。

   代碼如下:

BOOL CTabCtrlDlg::OnInitDialog()
{
        ............................................
	
	// TODO: Add extra initialization here
	// 爲Tab控件添加標籤
        m_wndTab.InsertItem (0, "Tab1");
	m_wndTab.InsertItem (0, "Tab2");
	// 以Tab控件爲父窗口創建兩個對話框
	m_dlg1.Create (IDD_DIALOG1, this);
	m_dlg2.Create (IDD_DIALOG2, this);
	// 顯示第一個對話框
	m_dlg1.ShowWindow (SW_SHOW);
	// 調整對話框大小
	// 獲取Tab控件的大小
	CRect rt;
	m_wndTab.GetClientRect (&rt);
	rt.top += 35;
	rt.left += 25;
	rt.right -= 1;
	rt.bottom -= 1;
	// 設置每個對話框的大小
	m_dlg1.MoveWindow (&rt);
	m_dlg2.MoveWindow (&rt);
        // 顯示第一個對話框
        m_dlg1.ShowWindow (SW_SHOW);
	return TRUE;  // return TRUE  unless you set the focus to a control
}


當然,爲了能讓便籤頁具備切換的功能,給Tab控件添加TCN_SELCHANGE消息處理

void CMFCTabCtrolDlg::OnSelchangeTab1(NMHDR* pNMHDR, LRESULT* pResult) 
{
	// TODO: Add your control notification handler code here
	// 獲取當前選擇項
	int nItem = m_wndTabCtrl.GetCurSel ();
    switch (nItem)
	{
	case 0:
		m_dlg1.ShowWindow (SW_SHOW);
		m_dlg2.ShowWindow (SW_HIDE);
		break;
	case 1:
		m_dlg2.ShowWindow (SW_SHOW);
		m_dlg1.ShowWindow (SW_HIDE);
		break;
	}
	
	*pResult = 0;
}



發佈了93 篇原創文章 · 獲贊 67 · 訪問量 100萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章