




已閱讀5頁(yè),還剩32頁(yè)未讀, 繼續(xù)免費(fèi)閱讀
版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
第一章 題目及程序功能設(shè)計(jì)說(shuō)明程序設(shè)計(jì)與框架I課程設(shè)計(jì)報(bào)告題目:模擬計(jì)算器學(xué)院:軟件學(xué)院專(zhuān)業(yè):軟件工程班級(jí):113301學(xué)號(hào):20113792 20113817 20113811姓名:劉秀儀 鄭曉雪 張佳指導(dǎo)老師:韓旭明設(shè)計(jì)日期:2013年12月23日第一章 題目及程序功能設(shè)計(jì)說(shuō)明目錄第一章 題目及程序功能設(shè)計(jì)說(shuō)明11.1題目:利用MFC框架編寫(xiě)簡(jiǎn)易計(jì)算器11.2程序功能設(shè)計(jì)1第二章 程序涉及的知識(shí)點(diǎn)22.1 SetWindowText22.2 按鈕控件22.3 編輯框數(shù)據(jù)的輸出與獲取22.4 Updatedata函數(shù)3第三章 功能設(shè)計(jì)43.1 功能設(shè)計(jì)4第四章 詳細(xì)設(shè)計(jì)64.1 詳細(xì)設(shè)計(jì)6第五章 部分窗體界面及代碼清單215.1 窗體界面215.2 代碼清單21第六章 體會(huì)及總結(jié)34第七章 參考文獻(xiàn)351第一章 題目及程序功能設(shè)計(jì)說(shuō)明第一章 題目及程序功能設(shè)計(jì)說(shuō)明1.1題目:利用MFC框架編寫(xiě)簡(jiǎn)易計(jì)算器要求使用MFC框架在VC6.0環(huán)境下編寫(xiě)一個(gè)簡(jiǎn)易的計(jì)算器,支持任意位數(shù)的加減乘數(shù),正負(fù)轉(zhuǎn)換,并且實(shí)現(xiàn)C功能。1.2程序功能設(shè)計(jì)使用MFC AppWizard創(chuàng)建基于對(duì)話框的Windows應(yīng)用程序,應(yīng)用程序要求通過(guò)單擊相應(yīng)的菜單項(xiàng)同樣可以實(shí)現(xiàn)算術(shù)加、減、乘和除的運(yùn)算。計(jì)算器上數(shù)字09為一個(gè)控件數(shù)組,加、減、乘、除為一個(gè)控件數(shù)組這個(gè)模擬計(jì)算器即可以通過(guò)按鈕輸入數(shù)字,又可以通過(guò)鍵盤(pán)輸入數(shù)字,它包含三個(gè)編輯框,其中兩個(gè)是輸入數(shù)字的,一個(gè)是用來(lái)輸出結(jié)果的,計(jì)算功能基本上是用系統(tǒng)內(nèi)部函,程序可以能自動(dòng)判斷輸入數(shù)據(jù)的正確性,保證不出現(xiàn)多于一個(gè)小數(shù)點(diǎn)、以0開(kāi)頭等不正?,F(xiàn)象,基于MFC庫(kù)類(lèi)對(duì)對(duì)話框界面的設(shè)計(jì),通過(guò)創(chuàng)建類(lèi)成員函數(shù)成員變量,編輯控件創(chuàng)建消息映射,調(diào)用消息函數(shù)完成數(shù)據(jù)的輸入輸出,實(shí)現(xiàn)計(jì)算功能,生成簡(jiǎn)單的應(yīng)用軟件。2第2章 程序涉及的知識(shí)點(diǎn)第二章 程序涉及的知識(shí)點(diǎn)2.1 SetWindowText BOOL SetWindowText(HWNDhwnd,LPCTSTRlpString);參數(shù)說(shuō)明:hWnd,要改變文本內(nèi)容的窗口或控件的句柄;lpString,指向一個(gè)空結(jié)束的字符串的指針,該字符串將作為窗口或控件的新文本。返回值:如果函數(shù)成功,返回值為非零;如果函數(shù)失敗,返回值為零。2.2 按鈕控件按鈕窗口(控件)在MFC中使用CButton表示,CButton包含了三種樣式的按鈕,PushButton,CheckBox,RadioBox。所以在利用CButton對(duì)象生成按鈕窗口時(shí)需要指明按鈕的風(fēng)格。創(chuàng)建按鈕:BOOLCButton:Create(LPCTSTRlpszCaption,DWORDdwStyle,constRECT&rect,CWnd*pParentWnd,UINTnID);其中l(wèi)pszCaption是按鈕上顯示的文字,dwStyle為按鈕風(fēng)格,除了Windows風(fēng)格可以使用外(如WS_CHILD|WS_VISUBLE|WS_BORDER)。2.3 編輯框數(shù)據(jù)的輸出與獲取編輯框數(shù)據(jù)的輸出與獲取有兩種方法,第一種,為編輯框關(guān)聯(lián)一個(gè)CONTROL類(lèi)型的類(lèi),假如是m_OutResult,那么要獲取數(shù)據(jù),就先定義一個(gè)CString類(lèi)的對(duì)象,假如為m_Data;那么m_OutResult.GetWindowText(m_Data);此時(shí),m_Data就存儲(chǔ)有編輯框里的內(nèi)容。輸出就用SetWindowText函數(shù),如CString m_Data=”abcdefg”;m_OutResult.SetWindowText(m_Data);或者把括號(hào)里的m_Data換成“abcdefg”。第二種方法是直接為編輯框關(guān)聯(lián)一個(gè)VALUE的類(lèi)型,有CString,double,int等等類(lèi)型,假如為CString類(lèi)型,名也為OutResult;此時(shí)如果要獲取該編輯框信息就調(diào)用UpdateData(FALSE);調(diào)用之后,OutResult就存儲(chǔ)有編輯框里的信息了。如果要輸出的話,比如要輸出”abcdefg”,那么就是下面語(yǔ)句:OutResult=”abcdefg”;UpdateData(TRUE);這樣就更新數(shù)據(jù)到編輯框里了,可以推斷,如果編輯框里只是int類(lèi)型,那么就選int;而double就是double。2.4 Updatedata函數(shù)UpdateData(true); 用窗體上控件中的內(nèi)容來(lái)更新和控件相關(guān)連的變量的值(只能更新value類(lèi)型的變量) 。UpdateData(false); 和上面的正好相反,以Edit為例,當(dāng)你在程序中改變了m_strName變量的內(nèi)容的時(shí)候,如果你想讓那個(gè)Edit也顯示更新后的 m_strName,就必須調(diào)用UpdateData(false)。UpdateData(TRUE)是將控件的狀態(tài)傳給其關(guān)聯(lián)的變量,當(dāng)然你要為控件關(guān)聯(lián)上變量才行。 UpdateData(FALSE)是將控件的關(guān)聯(lián)變量的值傳給控件并改變控件狀態(tài)。 UpdateData刷新的是當(dāng)前對(duì)話框。UpdateData(true);/用于將屏幕上控件中的數(shù)據(jù)交換到變量中。 UpdateData(false);/用于將數(shù)據(jù)在屏幕中對(duì)應(yīng)控件中顯示出來(lái)。使用UpdateData()函數(shù)時(shí),當(dāng)前界面上所有綁定了的變量(即通過(guò)MFC ClassWizard給控件添加了對(duì)應(yīng)的變量)都會(huì)被UpdateData(TRUE)更新成對(duì)應(yīng)控件中的內(nèi)容;同樣所有綁定了變量的控件中的內(nèi)容也會(huì) UpdateData(FALSE)更新成對(duì)應(yīng)變量中的內(nèi)容。第3章 功能設(shè)計(jì)第三章 功能設(shè)計(jì)3.1 功能設(shè)計(jì)首先從加法開(kāi)始:void CMyDlg:OnButton1()/ TODO: Add your control notification handler code hereUpdateData();double n_result;n_result = m_num1 + m_num2;m_result = n_result;char sz20;sprintf(sz,%f,m_result);m_CResult.SetWindowText(sz); UpdateData() 是MFC的窗口函數(shù),用來(lái)刷新數(shù)據(jù)的,由于我們進(jìn)行基本運(yùn)算需要更新數(shù)據(jù) 所以必須添加這個(gè)函數(shù)。n_result = m_num1 + m_num2; m_result = n_result; char sz20; sprintf(sz,%f,m_result); 以上代碼是進(jìn)行 加法的基本語(yǔ)句,然后數(shù)組保存并格式化打印輸出。m_CResult.SetWindowText(sz);此句是把結(jié)果輸出在之前用CEdit類(lèi)創(chuàng)建的對(duì)象m_CResult,m_CResult調(diào)用SetWindowText(sz);把結(jié)果顯示在編輯框中。剩下的減法 乘法和除法也是大同小異。這里所有加減乘除的代碼:4第4章 詳細(xì)設(shè)計(jì)第四章 詳細(xì)設(shè)計(jì)4.1 詳細(xì)設(shè)計(jì)1、 首先打開(kāi)VC,選擇MFC AppWizardexe,設(shè)定好路徑和工程名(這里我設(shè)置工程名為為“My”)。這里要注意的是在創(chuàng)建向?qū)Р襟E1的時(shí)候,我們選擇“基本對(duì)話框?!薄?、基本對(duì)話框建立完成。此時(shí)我們把當(dāng)前頁(yè)面上原配的控件按Delete全部清除(如下圖)。3、 我們按照MFC自帶的控件選項(xiàng)進(jìn)行我們本次計(jì)算器的控件添加(以下是控件)。 我們?cè)谠惹蹇盏慕缑嬷幸来斡蒙蠄D控件畫(huà)出一個(gè)基本的計(jì)算器頁(yè)面(如下圖)。當(dāng)然作為“所見(jiàn)即所得”的MFC控件設(shè)計(jì),干凈整齊的界面是基本要求,甚至?xí)绊懹脩舻男那椤?上圖我們用按鈕控件添加一共15個(gè)按鈕,分別是數(shù)字“ 0 9” 以及 “+ - * /”。每個(gè)控件“屬性”都有屬于它自己的ID,默認(rèn)的按鈕按鍵為IDC_BUTTON0,而且Cap當(dāng)然我們?yōu)榱恕邦櫭剂x”,對(duì)控件ID進(jìn)行修改成我們?nèi)菀妆嬲J(rèn)的(也可以不改),添加完控件并修改ID之后。(如下圖)。4、 這里我們把數(shù)字按鈕0 設(shè)置ID為IDC_BUTTON14_NUM0,其他的依次類(lèi)推。完成修改ID后,就需給控件添加消息響應(yīng)了,基本操作可以是直接雙擊控件,便會(huì)有向?qū)崾?。MFC默認(rèn)下了的響應(yīng)信息都為On_開(kāi)頭,而且以下顯示的是數(shù)字5的消息響應(yīng).之后所有的依次類(lèi)推,這步驟一般不對(duì)成員函數(shù)名稱(chēng)做任何修改,直接點(diǎn)擊OK即可。之后就會(huì)跳轉(zhuǎn)到具體的代碼實(shí)現(xiàn)過(guò)程 這里我們依次給每一個(gè)控件添加消息響應(yīng)函數(shù)(以下僅列出一部分)。 5、添加的控件消息響應(yīng)函數(shù)。編輯框控件的ID是:IDC_EDIT1;IDC_EDIT2;IDC_EDIT3。還有 加減乘除的控件添加當(dāng)初沒(méi)有進(jìn)行名字的設(shè)置,默認(rèn)為:void CMyDlg:OnButton1()/加;void CMyDlg:OnButton2()/減;void CMyDlg:OnButton3()/乘;void CMyDlg:OnButton4()/除。 在開(kāi)始第二步之前有一項(xiàng)工作時(shí)必須要做的,那便是添加3個(gè)成員變量和一個(gè)CEdit類(lèi)的變量。具體添加方法,就是右鍵主對(duì)話框CMyDlg-Add Member Variable,也可以是在菜單欄中選擇“查看”-“建立類(lèi)向?qū)А薄?這里我們把3個(gè)編輯框控件內(nèi)的變量都改變?yōu)閐ouble型的(因?yàn)檫M(jìn)行四則運(yùn)算難免出現(xiàn)小數(shù)點(diǎn)),之后再在控件IDC_EDIT3中選擇Add Variable,并且數(shù)據(jù)類(lèi)型選擇Control類(lèi)型此時(shí)變量自動(dòng)改為了CEdit類(lèi),這步的意思是說(shuō),我們把編輯框控件3的設(shè)置為CEdit類(lèi)并且設(shè)置一個(gè)成員對(duì)象是m_CResult。6、控件消息響應(yīng)函數(shù)具體代碼添加部分。加法:void CMyDlg:OnButton1()/ TODO: Add your control notification handler code hereUpdateData();double n_result;n_result = m_num1 + m_num2;m_result = n_result;char sz20;sprintf(sz,%f,m_result);m_CResult.SetWindowText(sz); UpdateData() 是MFC的窗口函數(shù),用來(lái)刷新數(shù)據(jù)的。由于我們進(jìn)行基本運(yùn)算需要更新數(shù)據(jù) 所以必須添加這個(gè)函數(shù)。n_result = m_num1 + m_num2; m_result = n_result; char sz20; sprintf(sz,%f,m_result); 以上代碼是進(jìn)行加法的基本語(yǔ)句,然后數(shù)組保存并格式化打印輸出。m_CResult.SetWindowText(sz);此句是把結(jié)果輸出在之前用CEdit類(lèi)創(chuàng)建的對(duì)象m_CResult,m_CResult調(diào)用SetWindowText(sz);把結(jié)果顯示在編輯框中。剩下的減法、乘法、除法和加法差不多。所有加減乘除的代碼:void CMyDlg:OnButton1()/ TODO: Add your control notification handler code hereUpdateData();double n_result;n_result = m_num1 + m_num2;m_result = n_result;char sz20;sprintf(sz,%f,m_result);m_CResult.SetWindowText(sz);void CMyDlg:OnButton2()/ TODO: Add your control notification handler code hereUpdateData();double n_result;n_result = m_num1 - m_num2;m_result = n_result;char sz20;sprintf(sz,%f,m_result);m_CResult.SetWindowText(sz);void CMyDlg:OnButton3()/ TODO: Add your control notification handler code hereUpdateData();double n_result;n_result = m_num1 * m_num2;m_result = n_result;char sz20;sprintf(sz,%f,m_result);m_CResult.SetWindowText(sz);void CMyDlg:OnButton4()/ TODO: Add your control notification handler code hereUpdateData();double n_result;n_result = m_num1 / m_num2;m_result = n_result;char sz20;sprintf(sz,%f,m_result);m_CResult.SetWindowText(sz);7、由于我們預(yù)設(shè)了2個(gè)編輯框所想實(shí)現(xiàn)的功能是,如在編輯框1內(nèi)輸入一個(gè)輸入30,然后再編輯框2內(nèi)輸入另一個(gè)數(shù)字20,并且再進(jìn)行運(yùn)算。那么存在一個(gè)問(wèn)題。這個(gè)問(wèn)題其實(shí)困惑了我很久,那就是,如何用判斷用戶是在哪個(gè)編輯框上輸入了數(shù)字,所以我們需要給程序加入一個(gè)功能,那便是判斷用戶是在編輯框1輸入,還是編輯框2內(nèi)輸入。 那么我們想,在日常我們用電腦的過(guò)程中,一般都是用鼠標(biāo)去點(diǎn)擊編輯框來(lái)進(jìn)行一系列操作。那么我可以加入一個(gè)鼠標(biāo)左鍵點(diǎn)擊WM_LBUTTONDOWN消息和一個(gè) EN_SETFOCUS事件來(lái)響應(yīng)這個(gè)鼠標(biāo)消息。 EN_SETFOCUS為判斷焦點(diǎn)事件(通俗點(diǎn)說(shuō),那便是判斷光標(biāo)在什么地方)這樣一來(lái),一切邏輯都理順了。我們用戶用鼠標(biāo)選擇并點(diǎn)擊編輯框的時(shí)候,我們用WM_LBUTTONDOWN消息去響應(yīng),然后與此同此,我們把響應(yīng)的和EN_SETFOCUS聯(lián)系起來(lái),我們預(yù)設(shè)一個(gè)全局變量nEditFlag ,作為在EN_SETFOCUS函數(shù)里的一個(gè) 標(biāo)記,并在鼠標(biāo)點(diǎn)下的時(shí)候用nEditFlag 去表示編輯框目前被選定的狀態(tài),nEditFlag =1 的時(shí)候我們就判斷用戶選擇了編輯框1 ,再者當(dāng)nEditFlag =2的時(shí)候說(shuō)明編輯框2被選定。這里我告訴大家如何添加 事件 EN_SETFOCUS,由于EN_SETFOCUS是一個(gè)判斷焦點(diǎn)的,所以對(duì)象應(yīng)該是編輯框1和編輯框2里添加,所以我們回到對(duì)話框編輯頁(yè)面?!坝益I編輯框1”-點(diǎn)擊“事件”- “選擇EN_SETFOCUS”(這里程序默認(rèn)的響應(yīng)函數(shù)是OnsetfocusEdit1)。依次類(lèi)推我們也給編輯框2添加事件響應(yīng)函數(shù)OnsetfocusEdit2,方法同上,如下圖:設(shè)置好之后,我們還要做一些初始化工作,在程序運(yùn)行之初,我們先初始化nEditFlag = 0;OnInitDialog()內(nèi)進(jìn)行初始化;我們只需在OnInitDialog()函數(shù)中加入一nEditFlag = 0;就可以了。之后我們?cè)贋閮蓚€(gè)事件響應(yīng)函數(shù)進(jìn)行OnsetfocusEdit1()和OnsetfocusEdit2()添加代碼。 當(dāng)用戶選定編輯框1的時(shí)候,nEditFlag = 1;當(dāng)用戶選定編輯框2的時(shí)候,nEditFlag = 2;而鼠標(biāo)消息WM_LBUTTONDOWN具體代碼如下:這里由于代碼都大同小異,所以就用數(shù)字按鈕1,2來(lái)進(jìn)行簡(jiǎn)要說(shuō)明。用if語(yǔ)句去判斷標(biāo)記常量 nEditFlag 從而給判斷是m_num1還是m_num2進(jìn)行操作這里m_num1是編輯框1內(nèi)的數(shù)字,m_num2是編輯框2內(nèi)的數(shù)字,剩下了39代碼以上大同小異。m_num2=m_num2*10+1; 很多人會(huì)問(wèn)這步是說(shuō)明意思,這步乍看貌似有點(diǎn)一頭霧水(當(dāng)初我也是這樣)但是仔細(xì)看看還是能看明白的。比方說(shuō) 用戶想打出自然數(shù)“234”。用戶第一次點(diǎn)的數(shù)字是2 那么此時(shí)對(duì)應(yīng)代碼執(zhí)行是這段m_num2=m_num2*10+2; 那么m_num2 = 0*10 +2 (初始化時(shí)m_num2 = 0)。之后如果在點(diǎn)擊3的時(shí)候執(zhí)行的代碼是m_num2=m_num2*10+3; (此時(shí)經(jīng)過(guò)第一步m_num2已經(jīng)為2了,再點(diǎn)了3 結(jié)果為m_num2= 2*10+3 = 23);最后點(diǎn)擊4 執(zhí)行的代碼是m_num2=m_num2*10+4;(23*10 +4=234)。32第5章 部分窗體界面及代碼清單 第五章 部分窗體界面及代碼清單5.1 窗體界面5.2 代碼清單/ MyDlg.cpp : implementation file/#include stdafx.h#include My.h#include MyDlg.h#ifdef _DEBUG#define new DEBUG_NEW#undef THIS_FILEstatic char THIS_FILE = _FILE_;#endif/ CAboutDlg dialog used for App Aboutint nEditFlag;double num1;double num2;class CAboutDlg : public CDialogpublic:CAboutDlg();/ Dialog Data/AFX_DATA(CAboutDlg)enum IDD = IDD_ABOUTBOX ;/AFX_DATA/ ClassWizard generated virtual function overrides/AFX_VIRTUAL(CAboutDlg)protected:virtual void DoDataExchange(CDataExchange* pDX); / DDX/DDV support/AFX_VIRTUAL/ Implementationprotected:/AFX_MSG(CAboutDlg)/AFX_MSGDECLARE_MESSAGE_MAP();CAboutDlg:CAboutDlg() : CDialog(CAboutDlg:IDD)/AFX_DATA_INIT(CAboutDlg)/AFX_DATA_INITvoid CAboutDlg:DoDataExchange(CDataExchange* pDX)CDialog:DoDataExchange(pDX);/AFX_DATA_MAP(CAboutDlg)/AFX_DATA_MAPBEGIN_MESSAGE_MAP(CAboutDlg, CDialog)/AFX_MSG_MAP(CAboutDlg)/ No message handlers/AFX_MSG_MAPEND_MESSAGE_MAP()/ CMyDlg dialogCMyDlg:CMyDlg(CWnd* pParent /*=NULL*/): CDialog(CMyDlg:IDD, pParent)/AFX_DATA_INIT(CMyDlg)m_num1 = 0.0;m_num2 = 0.0;m_result = 0.0;/AFX_DATA_INIT/ Note that LoadIcon does not require a subsequent DestroyIcon in Win32m_hIcon = AfxGetApp()-LoadIcon(IDR_MAINFRAME);void CMyDlg:DoDataExchange(CDataExchange* pDX)CDialog:DoDataExchange(pDX);/AFX_DATA_MAP(CMyDlg)DDX_Control(pDX, IDC_EDIT3, m_CResult);DDX_Text(pDX, IDC_EDIT1, m_num1);DDX_Text(pDX, IDC_EDIT2, m_num2);DDX_Text(pDX, IDC_EDIT3, m_result);/AFX_DATA_MAPBEGIN_MESSAGE_MAP(CMyDlg, CDialog)/AFX_MSG_MAP(CMyDlg)ON_WM_SYSCOMMAND()ON_WM_PAINT()ON_WM_QUERYDRAGICON()ON_BN_CLICKED(IDC_BUTTON2, OnButton2)ON_BN_CLICKED(IDC_BUTTON3, OnButton3)ON_BN_CLICKED(IDC_BUTTON4, OnButton4)ON_BN_CLICKED(IDC_BUTTON5, OnButton5)ON_BN_CLICKED(IDC_BUTTON6, OnButton6)ON_BN_CLICKED(IDC_BUTTON7, OnButton7)ON_BN_CLICKED(IDC_BUTTON8, OnButton8)ON_BN_CLICKED(IDC_BUTTON11, OnButton11)ON_BN_CLICKED(IDC_BUTTON9, OnButton9)ON_BN_CLICKED(IDC_BUTTON10, OnButton10)ON_BN_CLICKED(IDC_BUTTON13, OnButton13)ON_BN_CLICKED(IDC_BUTTON14, OnButton14)ON_BN_CLICKED(IDC_BUTTON15, OnButton15)ON_BN_CLICKED(IDC_BUTTON1, OnButton1)ON_EN_SETFOCUS(IDC_EDIT1, OnSetfocusEdit1)ON_EN_SETFOCUS(IDC_EDIT2, OnSetfocusEdit2)/AFX_MSG_MAPEND_MESSAGE_MAP()/ CMyDlg message handlersBOOL CMyDlg:OnInitDialog()CDialog:OnInitDialog();nEditFlag = 0;/ Add About. menu item to system menu./ IDM_ABOUTBOX must be in the system command range.ASSERT(IDM_ABOUTBOX & 0xFFF0) = IDM_ABOUTBOX);ASSERT(IDM_ABOUTBOX AppendMenu(MF_SEPARATOR);pSysMenu-AppendMenu(MF_STRING, IDM_ABOUTBOX, strAboutMenu);/ Set the icon for this dialog. The framework does this automatically/ when the applications main window is not a dialogSetIcon(m_hIcon, TRUE);/ Set big iconSetIcon(m_hIcon, FALSE);/ Set small icon/ TODO: Add extra initialization herereturn TRUE; / return TRUE unless you set the focus to a controlvoid CMyDlg:OnSysCommand(UINT nID, LPARAM lParam)if (nID & 0xFFF0) = IDM_ABOUTBOX)CAboutDlg dlgAbout;dlgAbout.DoModal();elseCDialog:OnSysCommand(nID, lParam);/ If you add a minimize button to your dialog, you will need the code below/ to draw the icon. For MFC applications using the document/view model,/ this is automatically done for you by the framework.void CMyDlg:OnPaint() if (IsIconic()CPaintDC dc(this); / device context for paintingSendMessage(WM_ICONERASEBKGND, (WPARAM) dc.GetSafeHdc(), 0);/ Center icon in client rectangleint cxIcon = GetSystemMetrics(SM_CXICON);int cyIcon = GetSystemMetrics(SM_CYICON);CRect rect;GetClientRect(&rect);int x = (rect.Width() - cxIcon + 1) / 2;int y = (rect.Height() - cyIcon + 1) / 2;/ Draw the icondc.DrawIcon(x, y, m_hIcon);elseCDialog:OnPaint();/ The system calls this to obtain the cursor to display while the user drags/ the minimized window.HCURSOR CMyDlg:OnQueryDragIcon()return (HCURSOR) m_hIcon;void CMyDlg:OnButton2() / TODO: Add your control notification handler code hereUpdateData(true);if(nEditFlag=1)m_num1=num1*10+1;else if(nEditFlag=2)m_num2=num2*10+1;UpdateData(FALSE);void CMyDlg:OnButton3() / TODO: Add your control notification handler code hereUpdateData(true);if(nEditFlag=1)m_num1=num1*10+2;else if(nEditFlag=2)m_num2=num2*10+2;UpdateData(FALSE);void CMyDlg:OnButton4() / TODO: Add your control notification handler code hereUpdateData(true);if(nEditFlag=1)m_num1=num1*10+3;else if(nEditFlag=2)m_num2=num2*10+3;UpdateData(FALSE);void CMyDlg:OnButton5() / TODO: Add your control notification handler code hereUpdateData(true);if(nEditFlag=1)m_num1=num1*10+4;else if(nEditFlag=2)m_num2=num2*10+4;UpdateData(FALSE);void CMyDlg:OnButton6() / TODO: Add your control notification handler code hereUpdateData(true);if(nEditFlag=1)m_num1=num1*10+5;else if(nEditFlag=2)m_num2=num2*10+5;UpdateData(FALSE);void CMyDlg:OnButton7() / TODO: Add your control notification handler code hereUpdateData(true);if(nEditFlag=1)m_num1=num1*10+6;else if(nEditFlag=2)m_num2=num2*10+6;UpdateData(FALSE);void CMyDlg:OnButton8() / TODO: Add your control notification handler code hereUpdateData(true);if(nEditFlag=1)m_num1=num1*10+7;else if(nEditFlag=2)m_num2=num2*10+7;UpdateData(FALSE);void CMyDlg:OnButton11() / TODO: Add your control notification handler code hereUpdateData(true);if(nEditFlag=1)m_num1=num1*10+0;else if(nEditFlag=2)m_num2=num2*10+0;UpdateData(FALSE);void CMyDlg:OnButton9() / TODO: Add your control notification handler code hereUpdateData(true);if(nEditFlag=1)m_num1=num1*10+8;else if(nEditFlag=2)m_num2=num2*10+8;UpdateData(FALSE);void CMyDlg:OnButton10() / TODO: Add your control notification handler code hereUpdateData(true);if(nEditFlag=1)m_num1=num1*10+9;else if(nEditFlag=2)m_num2=num2*10+9;UpdateData(FALSE);/*void CMyDlg:OnButton12() / TODO: Add your control notification handler code here*/void CMyDlg:OnButton13() / TODO: Add your control notification handler code hereUpdateData();double n_result;n_result = m
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年驅(qū)鼠器項(xiàng)目建議書(shū)
- 中學(xué)化學(xué)教學(xué)設(shè)計(jì)知到課后答案智慧樹(shù)章節(jié)測(cè)試答案2025年春魯東大學(xué)
- 2017-2018學(xué)年人教A版高中數(shù)學(xué)選修2-3檢測(cè)第一章計(jì)數(shù)原理單元質(zhì)量評(píng)估(一)
- 高考物理課標(biāo)版一輪復(fù)習(xí)考點(diǎn)規(guī)范練7牛頓第一定律牛頓第三定律
- 2024-2025學(xué)習(xí)筆記歷史(部編版)選必一第四單元 第12課 近代西方民族國(guó)家與國(guó)際法的發(fā)展
- 淺析打葉復(fù)烤企業(yè)的設(shè)備點(diǎn)檢工作
- 心理契約對(duì)建造師的項(xiàng)目公民行為的影響關(guān)系研究
- 西格列汀聯(lián)合二甲雙胍在2型糖尿病患者中的有效性和安全性以及對(duì)炎癥和氧化應(yīng)激的影響的研究
- 中國(guó)婚姻制度的嬗變歷程探索
- 新診斷2型糖尿病患者神經(jīng)電生理異常特點(diǎn)及相關(guān)因素研究
- ISO22000:2018體系之食品安全管理手冊(cè)含程序文件匯編2022版
- DZ∕T 0214-2020 礦產(chǎn)地質(zhì)勘查規(guī)范 銅、鉛、鋅、銀、鎳、鉬(正式版)
- QCSG1204009-2015電力監(jiān)控系統(tǒng)安全防護(hù)技術(shù)規(guī)范
- (正式版)SHT 3158-2024 石油化工管殼式余熱鍋爐
- 新生兒傳統(tǒng)四病篩查
- GB/T 41666.4-2024地下無(wú)壓排水管網(wǎng)非開(kāi)挖修復(fù)用塑料管道系統(tǒng)第4部分:原位固化內(nèi)襯法
- 小班社會(huì)《多喝水身體好》課件
- 2024年單招必備時(shí)事政治200題(含答案)
- 人教版小學(xué)數(shù)學(xué)三年級(jí)下冊(cè)全冊(cè)同步練習(xí)(含答案)
- 綠色守護(hù)者PPT模板
- 人工智能時(shí)代的就業(yè)與職業(yè)發(fā)展
評(píng)論
0/150
提交評(píng)論