基于MFC的大屏幕數(shù)字時(shí)鐘_第1頁
基于MFC的大屏幕數(shù)字時(shí)鐘_第2頁
基于MFC的大屏幕數(shù)字時(shí)鐘_第3頁
基于MFC的大屏幕數(shù)字時(shí)鐘_第4頁
基于MFC的大屏幕數(shù)字時(shí)鐘_第5頁
已閱讀5頁,還剩4頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

1、-. z.大屏幕顯示數(shù)字時(shí)鐘設(shè)計(jì) *:譚* 指導(dǎo)教師:* 專業(yè):* 年級:20*級摘要本設(shè)計(jì)基于MFC,MFC是微軟公司提供的一條類庫,是一種應(yīng)用程序框架,隨微軟Visual C+開發(fā)工具發(fā)布,以C+類的形式封裝了Windows的API,并且包含一個應(yīng)用程序框架,以減少應(yīng)用程序開發(fā)人員的工作量。其中包含的類包含大量Windows句柄封裝類和很多Windows的內(nèi)建控件和組件的封裝類。MFC:微軟根底類(Microsoft Foundation Classes),同VCL類似,是一種應(yīng)用程序框架,隨微軟Visual C+開發(fā)工具發(fā)布。目前最新版本為10.0,并且發(fā)布了中文版。該類庫提供一組通用的

2、可重用的類庫供開發(fā)人員使用,大局部類均從CObject 直接或間接派生,只有少局部類例外。MFC應(yīng)用程序的總體構(gòu)造通常由開發(fā)人員從MFC類派生的幾個類和一個CWinApp類對象應(yīng)用程序?qū)ο蠼M成。MFC 提供了MFC AppWizard 自動生成框架。Windows 應(yīng)用程序中,MFC 的主包含文件為Af*win.h。此外MFC的局部類為MFC/ATL 通用,可以在Win32 應(yīng)用程序中單獨(dú)包含并使用這些類。 由于它的易用性,初學(xué)者常誤認(rèn)為VC+開發(fā)必須使用MFC,這種想法是錯誤的。作為Application Framework,MFC的使用只能提高*些情況下的開發(fā)效率,只起到輔助作用,而不能替

3、代整個Win32 程序設(shè)計(jì)。關(guān)鍵字:MFC;大屏顯示幕數(shù)字時(shí)鐘;C+。Large screen display digital clock designName:Chen Tan Tutor:Jijie Bi Major:Electronics and munications Engineering Grade: 2013Abstract This design is based on the MFC, MFC is Microsoft provides a class library,is a kind of application framework,along with the Micr

4、osoft Visual c+development tools, in the form of c+class encapsulates the Windows API, and contains an application framework, in order to reduce the workload application developers.Handle to the class contains a large number of Windows which contains wrapper class and many Windows built-in controls

5、and ponent wrapper class.MFC: Microsoft Foundation Classes (Microsoft Foundation Classes), with the VCL, is a kind of application framework, along with the Microsoft Visual c+development tools.Currently the latest version is 10.0, and release the Chinese version.The class library provides a set of g

6、eneric reusable class library for developers, most of the classification are directly or indirectly derived from CObject, only a few e*ceptions.The overall structure of the MFC applications usually derived by the developer from MFC class several classes and class a CWinApp object (the application ob

7、ject).MFC provides a MFC AppWizard framework automatically generated.Windows application, MFC master include file for Af*win.H.Also part of the MFC class for MFC/ATL general, can separate in the Win32 application contains and use these classes.Because of its ease of use, often mistaken for beginners

8、 vc+ evelopment must use MFC, this idea is wrong.As an Application Framework, the use of MFC can only improve the efficiency of the development of some cases, only play a supplementary role, and does not replace the Win32 programming.Key words:MFC;Screen display digital clock;C+.緒論1.1 MFC簡介MFC(Micro

9、soft Foundation Classes),是微軟公是微軟公司提供的一條類庫司提供的一條類庫class libraries,以C+類的形式封裝了Windows的API,并且包含一個應(yīng)用程序框架,以減少應(yīng)用程序開發(fā)人員的工作量。其中包含的類包含大量Windows句柄封裝類和很多Windows的內(nèi)建控件和組件的封裝類。MFC:微軟根底類(Microsoft Foundation Classes),同VCL類似,是一種應(yīng)用程序框架,隨微軟Visual C+開發(fā)工具發(fā)布。目前最新版本為10.0,并且發(fā)布了中文版。該類庫提供一組通用的可重用的類庫供開發(fā)人員使用,大局部類均從CObject 直接或間

10、接派生,只有少局部類例外。MFC應(yīng)用程序的總體構(gòu)造通常由開發(fā)人員從MFC類派生的幾個類和一個CWinApp類對象應(yīng)用程序?qū)ο蠼M成。MFC 提供了MFC AppWizard 自動生成框架Windows 應(yīng)用程序中,MFC 的主包含文件為Af*win.h此外MFC的局部類為MFC/ATL 通用,可以在Win32 應(yīng)用程序中單獨(dú)包含并使用這些類。由于它的易用性,初學(xué)者常誤認(rèn)為VC+開發(fā)必須使用MFC,這種想法是錯誤的。作為Application Framework,MFC的使用只能提高*些情況下的開發(fā)效率,只起到輔助作用,而不能替代整個Win32 程序設(shè)計(jì)。1.2 立項(xiàng)意義本設(shè)計(jì)難度不大,主要是培養(yǎng)

11、對MFC根底的學(xué)習(xí)和認(rèn)識,并培養(yǎng)動手能力以及獨(dú)立思考能力。1.3 設(shè)計(jì)要求1對系統(tǒng)進(jìn)展功能模塊分析、控制模塊分析正確,符合課題要求,實(shí)現(xiàn)相應(yīng)功能;可以加以其他功能或修飾,使程序更加完善、合理;2系統(tǒng)設(shè)計(jì)要實(shí)用,編程簡練,可用,功能全面;3記錄設(shè)計(jì)情況備查,也為編寫設(shè)計(jì)說明書作好準(zhǔn)備;4要求采用模塊化程序設(shè)計(jì)方法,要求上機(jī)調(diào)試通過和按設(shè)計(jì)報(bào)告格式。方法步驟2.1 總框架數(shù)字時(shí)鐘獲取當(dāng)前時(shí)間 設(shè) 置 鬧 鐘 修 改 背 景 畫 面 顯 示 當(dāng) 前 時(shí) 間圖1.1 系統(tǒng)總框架首先獲取系統(tǒng)當(dāng)前時(shí)間,通過GetLocalTime(&locTm)函數(shù),之后分成三局部完成此設(shè)計(jì)。第一局部是設(shè)置一個計(jì)時(shí)器,每

12、隔一秒鐘顯示一次當(dāng)前時(shí)間;第二局部是改變系統(tǒng)背景畫面;第三局部是小鬧鐘的設(shè)計(jì)。2.2 時(shí)鐘局部2.2.1 時(shí)鐘流程圖開場執(zhí)行計(jì)時(shí)器SetTime函數(shù),每秒鐘計(jì)時(shí)一次執(zhí)行onTimer函數(shù),即獲取系統(tǒng)時(shí)間執(zhí)行Format函數(shù),對控件內(nèi)的內(nèi)容格式化 否執(zhí)行SetDlgItemTe*t函數(shù),在其控件上顯示時(shí)間字符串 退出 是執(zhí)行KillTimer函數(shù),刪除計(jì)數(shù)器 完畢 圖1.2 時(shí)鐘流程圖首先執(zhí)行SetTimer1,1000,NULL函數(shù),執(zhí)行計(jì)數(shù)功能,SetTimer創(chuàng)立一個計(jì)時(shí)器,1:代表計(jì)時(shí)器的名稱,1000代表計(jì)時(shí)器的時(shí)間間隔,為1000ms=1s,NULL對應(yīng)的函數(shù)是OnTimer。OnT

13、imer函數(shù)用來獲取系統(tǒng)實(shí)現(xiàn),并執(zhí)行Format函數(shù),對控件內(nèi)的內(nèi)容格式化。執(zhí)行SetDlgItemTe*t函數(shù),在其控件上顯示時(shí)間字符串。此時(shí)如果不點(diǎn)擊退出,系統(tǒng)繼續(xù)計(jì)時(shí),假設(shè)果點(diǎn)擊退出,執(zhí)行執(zhí)行KillTimer函數(shù),刪除計(jì)數(shù)器,完畢系統(tǒng)。2.2.2 時(shí)鐘相關(guān)函數(shù)1Ctime 類 Ctime t=Ctime:GetCurrentTime();/獲取當(dāng)前時(shí)間,并賦值給t。2Cstring str;/字符串類3Format(*);/格式化4Ctime 里有三個函數(shù): SetTimer(1,1000,NULL);OnTimer();KillTimer(1)。 Ctrl +w 調(diào)出classwiz

14、ard(類引導(dǎo))在Message消息中選擇WM_Timer 才能在工程里參加OnTimer();函數(shù);這三個函數(shù)的作用分別是SetTimer創(chuàng)立一個計(jì)時(shí)器,1:代表計(jì)時(shí)器的名稱,1000代表計(jì)時(shí)器的時(shí)間間隔,為1000ms=1s,NULL對應(yīng)的函數(shù)是OnTimer ;也就是說用SetTimer1,1000,NULL創(chuàng)立計(jì)時(shí)器后OnTimer函數(shù)每隔一秒就會執(zhí)行一次;KillTimer;用來刪除這個計(jì)時(shí)器,釋放內(nèi)存;當(dāng)然SetTimer1,1000,NULL的第一個參數(shù)1也可以改,相對應(yīng)的在OnTimer函數(shù)中:OntimerUINT nIDEventswitch (nIDEvent)Case

15、1: .;break;Case 2:.break;Case 3:.break;.還有幾個函數(shù) SetDlgItemTe*t(ID_NAME,str);在名為ID_NAME的控件上顯示字符串str。再來說一下Format;對時(shí)間t進(jìn)展字符串可是轉(zhuǎn)化有兩種表示方法:CTimet=CTime:GetCurrentTime();CStringstr;str.Format(%02d:%02d:%02d,t.GetHour(),t.GetMinute(),t.GetSecond();str=t.Format(%H : %M : %S );假設(shè)要顯示年(%Y)月(%m)日(%d),則可表示為str=t.Fo

16、rmat(%Y-%m-%d %H:%M:%S)。2.2.3 時(shí)鐘局部運(yùn)行結(jié)果此局部為時(shí)鐘局部運(yùn)行結(jié)果,還沒有修改系統(tǒng)背景圖畫以及參加鬧鐘局部: 圖3 時(shí)鐘局部運(yùn)行結(jié)果2.3 修改背景畫面2.3.1相關(guān)函數(shù)void CMyDlg:OnPaint() if (IsIconic()CPaintDC dc(this); / device conte*t for paintingSendMessage(WM_ICONERASEBKGND, (WPARAM) dc.GetSafeHdc(), 0);/設(shè)置背景/ Center icon in client rectangleint c*Icon = Get

17、SystemMetrics(SM_C*ICON);int cyIcon = GetSystemMetrics(SM_CYICON);CRect rect;GetClientRect(&rect);int * = (rect.Width() - c*Icon + 1) / 2;int y = (rect.Height() - cyIcon + 1) / 2;/ Draw the icondc.DrawIcon(*, y, m_hIcon);elseCDialog:OnPaint();2.3.2 修改畫面運(yùn)行結(jié)果圖4 修改系統(tǒng)畫面結(jié)果2.4 設(shè)置鬧鐘2.4.1 鬧鐘流程圖開場OnTimer函數(shù)獲取

18、系統(tǒng)時(shí)間輸入鬧鐘時(shí)間以及提示文字判斷時(shí)間格式是否正確顯示請輸入正確時(shí)間! 否是否點(diǎn)擊試聽按鈕 是播放鬧鐘聲音 是 否 點(diǎn)擊設(shè)置鬧鐘按鈕SetTimer(1,1000,NULL)函數(shù)時(shí)間計(jì)數(shù)器判斷輸入時(shí)間是否與系統(tǒng)時(shí)間一致 否 是鬧鈴響,顯示文字完畢 圖5 鬧鐘流程圖首先獲取系統(tǒng)時(shí)間,在edit控件中輸入鬧鐘時(shí)間以及要顯示的文字,判斷時(shí)間格式是否正確,如果不正確,顯示請輸入正確時(shí)間!并且重新輸入時(shí)間,如果正確,判斷是否點(diǎn)擊試聽按鈕,如果點(diǎn)擊,則播放鬧鐘試音,否則點(diǎn)擊設(shè)置鬧鐘。此時(shí)印用SetTimer(1,1000,NULL)函數(shù)時(shí)間計(jì)數(shù)器,判斷輸入時(shí)間是否與系統(tǒng)時(shí)間一至,是則播放鬧鐘聲音并顯示文字,否則繼續(xù)時(shí)間計(jì)數(shù),知道與輸入的時(shí)間一致。2.4.2 鬧鐘相關(guān)函數(shù)三個編輯框添加三個成員m_hour,m_minutes,m_second然后在classview 選項(xiàng)卡下選擇onpaint()添加一個計(jì)時(shí)器SetTimer(1,1000,NULL);選擇Ontim

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論