資源描述:
《手把手教你mfc編程計算器》由會員上傳分享,免費在線閱讀,更多相關(guān)內(nèi)容在應(yīng)用文檔-天天文庫。
1、STEP1(頁面設(shè)計部分與控件添加部分)???首先打開VC,選擇MFCAppWizard[exe],設(shè)定好路徑和工程名(這里我設(shè)置工程名為為“My”)。這里要注意的是在創(chuàng)建向?qū)Р襟E1的時候,我們選擇“基本對話框”。?之后我們可以點擊完成便看到以下界面此時我們把當(dāng)前頁面上原配的控件按Delete全部清除(如下圖)?接著我們按照MFC自帶的控件選項進(jìn)行我們本次計算器的控件添加(以下是控件)我們在原先清空的界面中依次用上圖控件畫出一個基本的計算器頁面(如下圖)。當(dāng)然作為“所見即所得”的MFC控件設(shè)計,干凈整齊的界面是基本要求,甚至?xí)绊懹脩舻男那?。上圖我們
2、用按鈕控件添加一共15個按鈕,分別是數(shù)字“0~9”以及“+-*/”。每個控件“屬性”都有屬于它自己的ID,默認(rèn)的按鈕按鍵為IDC_BUTTON0,而且Cap當(dāng)然我們?yōu)榱恕邦櫭剂x”,對控件ID進(jìn)行修改成我們?nèi)菀妆嬲J(rèn)的(也可以不改),添加完控件并修改ID之后。(如下圖)這里我們把數(shù)字按鈕0設(shè)置ID為IDC_BUTTON14_NUM0,其他的依次類推??完成修改ID后,就需給控件添加消息響應(yīng)了,基本操作可以是直接雙擊控件,便會有向?qū)崾尽FC默認(rèn)下了的響應(yīng)信息都為On_開頭,而且以下顯示的是數(shù)字5的消息響應(yīng).之后所有的依次類推,這步驟一般不對成員函數(shù)名
3、稱做任何修改,直接點擊OK即可?之后就會跳轉(zhuǎn)到具體的代碼實現(xiàn)過程這里我們依次給每一個控件添加消息響應(yīng)函數(shù)(以下僅列出一部分)到此為止我們基本上完成了計算器頁面的前半部分預(yù)備工作,下來是我們的對控件具體實現(xiàn)代碼的添加?這里我把添加的控件消息響應(yīng)函數(shù)列出來這里忘記了,提醒一點編輯框控件的ID是IDC_EDIT1IDC_EDIT2IDC_EDIT3?還有加減乘除的控件添加當(dāng)初沒有進(jìn)行名字的設(shè)置默認(rèn)為voidCMyDlg::OnButton1()//加voidCMyDlg::OnButton2()//減voidCMyDlg::OnButton3()//乘vo
4、idCMyDlg::OnButton4()//除////////////////////////////////////////////////////在開始第二步之前有一項工作時必須要做的,那便是添加3個成員變量和一個CEdit類的變量具體添加方法,就是右鍵主對話框CMyDlg->AddMemberVariable也可以是在菜單欄中選擇“查看”->“建立類向?qū)А?這里我們把3個編輯框控件內(nèi)的變量都改變?yōu)閐ouble型的(因為進(jìn)行四則運算難免出現(xiàn)小數(shù)點)之后再在控件IDC_EDIT3中選擇"AddVariable"并且數(shù)據(jù)類型選擇Control類型此
5、時變量自動改為了CEdit類這步的意思是說我們把編輯框控件3的設(shè)置為CEdit類并且設(shè)置一個成員對象是m_CResult。???//////////////////////////////////////////////////////////////////////////STEP2(控件消息響應(yīng)函數(shù)具體代碼添加部分)?首先從加法開始voidCMyDlg::OnButton1(){?//TODO:Addyourcontrolnotificationhandlercodehere?UpdateData();doublen_result;n_resul
6、t=m_num1+m_num2;m_result=n_result;charsz[20];sprintf(sz,"%f",m_result);m_CResult.SetWindowText(sz);}??UpdateData()是MFC的窗口函數(shù),用來刷新數(shù)據(jù)的由于我們進(jìn)行基本運算需要更新數(shù)據(jù)所以必須添加這個函數(shù)。(可以認(rèn)為是必須的)?n_result=m_num1+m_num2;m_result=n_result;charsz[20];sprintf(sz,"%f",m_result);以上代碼是進(jìn)行加法的基本語句,然后數(shù)組保存并格式化打印輸出。m
7、_CResult.SetWindowText(sz);此句是把結(jié)果輸出在之前用CEdit類創(chuàng)建的對象m_CResult,m_CResult調(diào)用SetWindowText(sz);把結(jié)果顯示在編輯框中。??無獨有偶剩下的減法乘法和除法也是大同小異(只是把符號小改一下便可~~)這里貼出所有加減乘除的代碼voidCMyDlg::OnButton1(){?//TODO:Addyourcontrolnotificationhandlercodehere?UpdateData();doublen_result;n_result=m_num1+m_num2;m_r
8、esult=n_result;charsz[20];sprintf(sz,"%f",m_result);m_