1. 新建一個(gè)MFC工程, 取名Tab, 選擇Dialog based, 然后Finish.
2. 刪除該對(duì)話框上默認(rèn)添加的三個(gè)控件. 添加Tab Control控件設(shè)置ID為IDC_TAB.在ClassWizard為其添加變量, 變量名為m_tab,類型為CTabCtrl.
3. 在對(duì)話框的初始化函數(shù)On
m_tab.InsertItem(1,"被加數(shù)");
m_tab.InsertItem(2,"和");
4.在對(duì)話框資源里面添加三個(gè)對(duì)話框資源, ID分別命名為IDD_ADD1, IDD_ADD2, IDD_RESULT. 字體為宋體,字號(hào)為9, style為Child, Border為None.再分別為其添加對(duì)應(yīng)的基于CDialog類Cadd1, Cadd2, CResult.
5. 在CTabDlg類中添加三個(gè)成員變量m_add1, m_add2, m_result, 分別是三個(gè)子對(duì)話框的實(shí)例. 代碼如下:
CResult m_result; //需要#include “CResult.h”
CAdd2 m_add2;
Cadd1 m_add1;
6. 在IDD_Add1對(duì)話框上添加靜態(tài)文本控件內(nèi)容為"加數(shù)" 再在后面插入一個(gè)文本框控件, 用ClassWizard將其關(guān)聯(lián)為一個(gè)int型變量,名為m_nAdd1;在IDD_Add2對(duì)話框上添加靜態(tài)文本控件內(nèi)容為"被加數(shù)" 再在后面插入一個(gè)文本框控件, 用ClassWizard將其關(guān)聯(lián)為一個(gè)int型變量,名為m_nAdd2;在IDD_RESULT對(duì)話框上添加靜態(tài)文本控件內(nèi)容為"結(jié)果" 再在后面插入一個(gè)文本框控件, 用ClassWizard將其關(guān)聯(lián)為一個(gè)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對(duì)話框的初始化函數(shù)On
//關(guān)聯(lián)對(duì)話框,并且將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)整子對(duì)話框在父窗口中的位置
rs.top+=60;
rs.bottom-=1;
rs.left+=1;
rs.right-=2;
//設(shè)置子對(duì)話框尺寸并移動(dòng)到指定位置
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)的選項(xiàng)卡
m_tab.SetCurSel(0);
9. 添加Tab Control控件的TCN_SELCHANGE事件響應(yīng)函數(shù)void CTabDlg::On
{
10. 在IDD_TAB_DIALOG對(duì)話框下面添加一個(gè)按鈕, 標(biāo)題為"計(jì)算" 為其添加事件響應(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. 程序完成
聯(lián)系客服