首先你應該瞭解物件導向的基於訊息驅動的Windows訊息編程,當然,對於編寫這個計算 器,你不必知道太多的windows編程,你重要會編寫基於對話方塊的簡單應用程式就可以了。
首先,讓我們來仔細瞭解一下mircosoft的計算機吧,我們發現它是一個基於對話方塊 的含有兩的主對話方塊、一個關於對話方塊、一個菜單的應用程式。也就是說,我們應該建立一 個基於對話方塊的應用程式,並且為其添加一個菜單和一個主對話方塊(因為,應用程式已經創 建好了一個主對話方塊和關於對話方塊)
接下來,我們應該設計對話方塊的介面了,這個是 很簡單的事情,你只要將其和mircosoft的計算機比較就行了。當然,你也可以添加其他控制項 。
第一個主對話方塊也就是預設的主程式介面,是用於執行簡單計算(+、-、*、/、開 根、倒數、平方等)
第二個就是執行科學計算的程式了。使用者可以用vc中的控制項排版 工具和TAB設計出一個漂亮的介面(通常,程式的介面在很大程度上會影響程式的普及度和用 戶的情緒的)。好了,上面的工作完成後,我們進入正題吧。
我們首先要為所有控制項 指定一個ID號(一定要見ID知其意),比如0控制項我們用ID_0表示。其他控制項依次類推。設計 好ID後我們就應該為其添加變數,這裡我們為所有的除了編輯控制項外的控制項指定CString型變 量,編輯控制項為CEdit。然後我添加一些必要的成員變數(我們以簡單計數器為例介紹)
public:
char m_sign; //記錄運算子+、-、*、/等
int m; //控制 編輯框中的字元
int n; //用於判斷連續進行了幾次運算
CString strItem; // 用於記錄當前編輯框中的資料
CString m_string; //用於記錄前n-1次的運算結果
現在,我們編寫建構函式:
m_hIcon = AfxGetApp()->LoadIcon (IDR_MAINFRAME);
m=n=0;
m_string="";
strItem="";
我們然後為數字鍵編寫程式:
(以0為例) if(!m) {m_Edit.SetWindowText("");m++;} //用於得到連續的輸入
m_Edit.GetWindowText(strItem); //將當前字元儲存在strItem中
CString str="0";輸入數字
strItem+=str;//連續輸入字元
m_Edit.SetWindowText(strItem); //顯示連續的輸入