1. 新建一個MFC工程, 取名Tab, 選擇Dialog based, 然后Finish. 2. 刪除該對話框上默認(rèn)添加的三個控件. 添加Tab Control控件設(shè)置ID為IDC_TAB.在ClassWizard為其添加變量, 變量名為m_tab,類型為CTabCtrl. 3. 在對話框的初始化函數(shù)On m_tab.InsertItem(1,"被加數(shù)"); m_tab.InsertItem(2,"和"); 4.在對話框資源里面添加三個對話框資源, ID分別命名為IDD_ADD1, IDD_ADD2, IDD_RESULT. 字體為宋體,字號為9, style為Child, Border為None.再分別為其添加對應(yīng)的基于CDialog類Cadd1, Cadd2, CResult. 5. 在CTabDlg類中添加三個成員變量m_add1, m_add2, m_result, 分別是三個子對話框的實例. 代碼如下: CResult m_result; //需要#include “CResult.h” CAdd2 m_add2; Cadd1 m_add1; 6. 在IDD_Add1對話框上添加靜態(tài)文本控件內(nèi)容為"加數(shù)" 再在后面插入一個文本框控件, 用ClassWizard將其關(guān)聯(lián)為一個int型變量,名為m_nAdd1;在IDD_Add2對話框上添加靜態(tài)文本控件內(nèi)容為"被加數(shù)" 再在后面插入一個文本框控件, 用ClassWizard將其關(guān)聯(lián)為一個int型變量,名為m_nAdd2;在IDD_RESULT對話框上添加靜態(tài)文本控件內(nèi)容為"結(jié)果" 再在后面插入一個文本框控件, 用ClassWizard將其關(guān)聯(lián)為一個int型變量,名為m_nResult; 7. 為CAdd1類添加成員函數(shù)int GetAdd1() 代碼如下: int CAdd1:: GetAdd1() { return m_nAdd1;} 為CAdd2類添加成員函數(shù)int GetParaValue() 代碼如下: int CAdd2:: GetAdd2 (){return m_nAdd2;;} 為CResult類添加成員函數(shù)void SetResult(int nResult) 代碼如下: void CResult::SetResult() (int nResult){m_nResult = nResult;} 8. 在IDD_TAB_DIALOG對話框的初始化函數(shù)On //關(guān)聯(lián)對話框,并且將IDC_TABTEST控件設(shè)為父窗口 m_add1.Create(IDD_ADD1,GetDlgItem(IDC_TAB)); m_add2.Create(IDD_ADD2,GetDlgItem(IDC_TAB)); m_result.Create(IDD_RESULT,GetDlgItem(IDC_TAB)); //獲得IDC_TAB客戶區(qū)大小 CRect rs; m_tab.GetClientRect(&rs); //調(diào)整子對話框在父窗口中的位置 rs.top+=60; rs.bottom-=1; rs.left+=1; rs.right-=2; //設(shè)置子對話框尺寸并移動到指定位置 m_add1.MoveWindow(&rs); m_add2.MoveWindow(&rs); m_result.MoveWindow(&rs); //分別設(shè)置隱藏和顯示 m_add1.ShowWindow(true); m_add2.ShowWindow(false); m_result.ShowWindow(false); //設(shè)置默認(rèn)的選項卡 m_tab.SetCurSel(0); 9. 添加Tab Control控件的TCN_SELCHANGE事件響應(yīng)函數(shù)void CTabDlg::On { 10. 在IDD_TAB_DIALOG對話框下面添加一個按鈕, 標(biāo)題為"計算" 為其添加事件響應(yīng)函數(shù), 代碼如下: m_add1.UpdateData(true); m_add2.UpdateData(true); m_result.SetResult (m_add1.GetAdd1()+m_add2.GetAdd2()); m_result.UpdateData(false); 11. 程序完成 |
|