1. 新建一個MFC工程, 取名Tab, 選擇Dialog based, 然后Finish.
2. 刪除該對話框上默認添加的三個控件. 添加Tab Control控件設置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.再分別為其添加對應的基于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控件設為父窗口
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;
//設置子對話框尺寸并移動到指定位置
m_add1.MoveWindow(&rs);
m_add2.MoveWindow(&rs);
m_result.MoveWindow(&rs);
//分別設置隱藏和顯示
m_add1.ShowWindow(true);
m_add2.ShowWindow(false);
m_result.ShowWindow(false);
//設置默認的選項卡
m_tab.SetCurSel(0);
9. 添加Tab Control控件的TCN_SELCHANGE事件響應函數(shù)void CTabDlg::On
{
10. 在IDD_TAB_DIALOG對話框下面添加一個按鈕, 標題為"計算" 為其添加事件響應函數(shù), 代碼如下:
m_add1.UpdateData(true);
m_add2.UpdateData(true);
m_result.SetResult (m_add1.GetAdd1()+m_add2.GetAdd2()); m_result.UpdateData(false);
11. 程序完成