學習最有效的方法就是實戰,這兩篇文章寫了作MFC加減乘除計算器的過程。html
第一寫前臺MFC界面搭建,第二寫後臺計算原理及代碼。編程
MFC編程參考教程:http://www.jizhuomi.com/school/c/149.html編輯器
第二篇文章連接:C++作四則運算的MFC計算器(二)棧轉換和計算後綴表達式函數
搭建MFC項目工具
以VS2017爲例,新建項目->MFC項目,寫名字,設路徑佈局
應用程序類型,選擇基於對話框的,其餘默認便可,直到最後一步學習
生成的類選擇Dlgspa
完成後,項目裏會有不少自動添加的資源3d
.ico是圖標,隨便玩。調試
.rc和.rc2:rc2文件包含項目使用的附加資源的腳本文件。能夠在項目的 .rc 文件的頂部包括 .rc2 文件。 .rc2 文件用於存放由多個不一樣項目使用的資源。沒必要爲不一樣的項目屢次建立相同的資源,而是能夠將它們放在一個 .rc2 文件中,而後將該 .rc2 文件包括在主 .rc 文件中。雙擊都會調到資源視圖,在這編輯界面。
Dialog就是主要編輯的地方,ABOUTBOX是幫主窗口,MFCCALCULATION_DIALOG是主要窗口
那怎麼加東西呢?在工具箱裏,工具箱通常在側面的一個犄角格拉里,豎着的,裏面有各類組件,感興趣的玩玩看。
此處用button按鈕、Edit Control編輯框和static text靜態文本就夠了。
把button拖到界面上,再按Ctrl拖能複製,數字0-九、+、-、*、/、(、)、刪除、清空和 =,19個按鈕。用參考線(格式->參考線設置)佈局更方便。
右鍵按鈕->屬性,顯示控件的各類屬性,其中Caption屬性是按鈕的內容,寫「1」按鈕就顯示「1」,窗口的Caption就是窗口的標題。每一個控件的ID屬性是獨立的,用默認生成的就行,也能夠本身編寫。
按鈕事件
「刪除」按鈕點一次刪除一個字符,「清空」按鈕就是清空,其餘按鈕每點一次,表達式編輯框就加一個字符
先爲編輯框建立「值」變量、「控件」變量來控制內容,簡單地理解:「值」給「控件」就會顯示。右鍵表達式編輯器->添加變量
「值」類別是編輯框要現實的內容,名稱爲editv。再以同方法建「控件」類別的變量editc。
計算結果框也要有「值」變量和「控件」變量,分別是resultv、resultc。
接下來爲每一個按鈕單擊時顯示到編輯框中。
雙擊按鈕,自動添加單擊事件的函數,並跳轉到MFCcalculationDlg.cpp,
使用UpdateData(false)將變量值給控件,要反過來把false改爲true,這個後面會用到。爲每一個按鈕添加對應的函數。
實現刪除使用editv = editv.Left(editv.GetLength() - 1),Left(n)取左邊n個字符,editv.GetLength()取editv的長度,長度-1就刪掉最後一個。
實現清空使用editv = "";
「=」的功能是將控件的值傳給變量,再調用其餘計算函數計算,把計算結果傳給另外一個編輯框中。在這裏先實現顯示計算表達式。
調試結果是這個樣子的: