基于MFC的大屏幕数字时钟.docx

上传人:b****1 文档编号:3291576 上传时间:2023-05-05 格式:DOCX 页数:13 大小:268.94KB
下载 相关 举报
基于MFC的大屏幕数字时钟.docx_第1页
第1页 / 共13页
基于MFC的大屏幕数字时钟.docx_第2页
第2页 / 共13页
基于MFC的大屏幕数字时钟.docx_第3页
第3页 / 共13页
基于MFC的大屏幕数字时钟.docx_第4页
第4页 / 共13页
基于MFC的大屏幕数字时钟.docx_第5页
第5页 / 共13页
基于MFC的大屏幕数字时钟.docx_第6页
第6页 / 共13页
基于MFC的大屏幕数字时钟.docx_第7页
第7页 / 共13页
基于MFC的大屏幕数字时钟.docx_第8页
第8页 / 共13页
基于MFC的大屏幕数字时钟.docx_第9页
第9页 / 共13页
基于MFC的大屏幕数字时钟.docx_第10页
第10页 / 共13页
基于MFC的大屏幕数字时钟.docx_第11页
第11页 / 共13页
基于MFC的大屏幕数字时钟.docx_第12页
第12页 / 共13页
基于MFC的大屏幕数字时钟.docx_第13页
第13页 / 共13页
亲,该文档总共13页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

基于MFC的大屏幕数字时钟.docx

《基于MFC的大屏幕数字时钟.docx》由会员分享,可在线阅读,更多相关《基于MFC的大屏幕数字时钟.docx(13页珍藏版)》请在冰点文库上搜索。

基于MFC的大屏幕数字时钟.docx

基于MFC的大屏幕数字时钟

大屏幕显示数字时钟设计

姓名:

谭X指导教师:

XXX

专业:

XXXXXXXXX年级:

20XX级

摘要

本设计基于MFC,MFC是微软公司提供的一条类库,是一种应用程序框架,随微软VisualC++开发工具发布,以C++类的形式封装了Windows的API,并且包含一个应用程序框架,以减少应用程序开发人员的工作量。

其中包含的类包含大量Windows句柄封装类和很多Windows的内建控件和组件的封装类。

MFC:

微软基础类(MicrosoftFoundationClasses),同VCL类似,是一种应用程序框架,随微软VisualC++开发工具发布。

目前最新版本为10.0,并且发布了中文版。

该类库提供一组通用的可重用的类库供开发人员使用,大部分类均从CObject直接或间接派生,只有少部分类例外。

MFC应用程序的总体结构通常由开发人员从MFC类派生的几个类和一个CWinApp类对象(应用程序对象)组成。

MFC提供了MFCAppWizard自动生成框架。

Windows应用程序中,MFC的主包含文件为Afxwin.h。

此外MFC的部分类为MFC/ATL通用,可以在Win32应用程序中单独包含并使用这些类。

由于它的易用性,初学者常误认为VC++开发必须使用MFC,这种想法是错误的。

作为ApplicationFramework,MFC的使用只能提高某些情况下的开发效率,只起到辅助作用,而不能替代整个Win32程序设计。

关键字:

MFC;大屏显示幕数字时钟;C++。

 

Largescreendisplaydigitalclockdesign

Name:

ChenTanTutor:

JijieBi

Major:

ElectronicsandCommunicationsEngineeringGrade:

2013

Abstract

ThisdesignisbasedontheMFC,MFCisMicrosoftprovidesaclasslibrary,isakindofapplicationframework,alongwiththeMicrosoftVisualc++developmenttools,intheformofc++classencapsulatestheWindowsAPI,andcontainsanapplicationframework,inordertoreducetheworkloadapplicationdevelopers.HandletotheclasscontainsalargenumberofWindowswhichcontainswrapperclassandmanyWindowsbuilt-incontrolsandcomponentwrapperclass.

MFC:

MicrosoftFoundationClasses(MicrosoftFoundationClasses),withtheVCL,isakindofapplicationframework,alongwiththeMicrosoftVisualc++developmenttools.Currentlythelatestversionis10.0,andreleasetheChineseversion.Theclasslibraryprovidesasetofgenericreusableclasslibraryfordevelopers,mostoftheclassificationaredirectlyorindirectlyderivedfromCObject,onlyafewexceptions.

TheoverallstructureoftheMFCapplicationsusuallyderivedbythedeveloperfromMFCclassseveralclassesandclassaCWinAppobject(theapplicationobject).MFCprovidesaMFCAppWizardframeworkautomaticallygenerated.

Windowsapplication,MFCmasterincludefileforAfxwin.H.

AlsopartoftheMFCclassforMFC/ATLgeneral,canseparateintheWin32applicationcontainsandusetheseclasses.

Becauseofitseaseofuse,oftenmistakenforbeginnersvc++evelopmentmustuseMFC,thisideaiswrong.AsanApplicationFramework,theuseofMFCcanonlyimprovetheefficiencyofthedevelopmentofsomecases,onlyplayasupplementaryrole,anddoesnotreplacetheWin32programming.

Keywords:

MFC;Screendisplaydigitalclock;C++.

 

第1章绪论

1.1MFC简介

MFC(MicrosoftFoundationClasses),是微软公是微软公司提供的一条类库司提供的一条类库(classlibraries),以C++类的形式封装了Windows的API,并且包含一个应用程序框架,以减少应用程序开发人员的工作量。

其中包含的类包含大量Windows句柄封装类和很多Windows的内建控件和组件的封装类。

MFC:

微软基础类(MicrosoftFoundationClasses),同VCL类似,是一种应用程序框架,随微软VisualC++开发工具发布。

目前最新版本为10.0,并且发布了中文版。

该类库提供一组通用的可重用的类库供开发人员使用,大部分类均从CObject直接或间接派生,只有少部分类例外。

MFC应用程序的总体结构通常由开发人员从MFC类派生的几个类和一个CWinApp类对象(应用程序对象)组成。

MFC提供了MFCAppWizard自动生成框架

Windows应用程序中,MFC的主包含文件为Afxwin.h

此外MFC的部分类为MFC/ATL通用,可以在Win32应用程序中单独包含并使用这些类。

由于它的易用性,初学者常误认为VC++开发必须使用MFC,这种想法是错误的。

作为ApplicationFramework,MFC的使用只能提高某些情况下的开发效率,只起到辅助作用,而不能替代整个Win32程序设计。

1.2立项意义

本设计难度不大,主要是培养对MFC基础的学习和认识,并培养动手能力以及独立思考能力。

1.3设计要求

1)对系统进行功能模块分析、控制模块分析正确,符合课题要求,实现相应功能;可以加以其他功能或修饰,使程序更加完善、合理;

2)系统设计要实用,编程简练,可用,功能全面;

3)记录设计情况(备查,也为编写设计说明书作好准备);

4)要求采用模块化程序设计方法,要求上机调试通过和按设计报告格式。

 

第2章方法步骤

2.1总框架

 

图1.1系统总框架

首先获取系统当前时间,通过GetLocalTime(&locTm)函数,之后分成三部分完成此设计。

第一部分是设置一个计时器,每隔一秒钟显示一次当前时间;第二部分是改变系统背景画面;第三部分是小闹钟的设计。

 

2.2时钟部分

2.2.1时钟流程图

 

图1.2时钟流程图

首先执行SetTimer(1,1000,NULL)函数,执行计数功能,SetTimer创建一个计时器,1:

代表计时器的名称,1000代表计时器的时间间隔,为1000ms=1s,NULL对应的函数是OnTimer。

OnTimer函数用来获取系统实现,并执行Format函数,对控件内的内容格式化。

执行SetDlgItemText函数,在其控件上显示时间字符串。

此时如果不点击退出,系统继续计时,若果点击退出,执行执行KillTimer函数,,删除计数器,结束系统。

2.2.2时钟相关函数

1)Ctime类Ctimet=Ctime:

:

GetCurrentTime();//获取当前时间,并赋值给t。

2)Cstringstr;//字符串类

3)Format("xxxx");//格式化

4)Ctime里有三个函数:

SetTimer(1,1000,NULL);OnTimer();KillTimer

(1)。

Ctrl+w调出classwizard(类引导)在Message(消息)中选择WM_Timer才能在工程里加入OnTimer();函数;这三个函数的作用分别是SetTimer创建一个计时器,1:

代表计时器的名称,1000代表计时器的时间间隔,为1000ms=1s,NULL对应的函数是OnTimer;也就是说用SetTimer(1,1000,NULL)创建计时器后OnTimer函数每隔一秒就会执行一次;KillTimer();用来删除这个计时器,释放内存;当然SetTimer(1,1000,NULL)的第一个参数1也可以改,相对应的在OnTimer函数中:

Ontimer(UINTnIDEvent)

{switch(nIDEvent)

{Case1:

.........;break;

Case2:

....................break;

Case3:

.................break;

....................}}

5)还有几个函数SetDlgItemText(ID_NAME,str);在名为ID_NAME的控件上显示字符串str。

6)再来说一下Format();对时间t进行字符串可是转化有两种表示方法:

<1>CTimet=CTime:

:

GetCurrentTime();CStringstr;str.Format("%02d:

%02d:

%02d",t.GetHour(),t.GetMinute(),t.GetSecond());

<2>str=t.Format("%H:

%M:

%S");若要显示年(%Y)月(%m)日(%d),则可表示为str=t.Format("%Y-%m-%d%H:

%M:

%S")。

2.2.3时钟部分运行结果

此部分为时钟部分运行结果,还没有修改系统背景图画以及加入闹钟部分:

图3时钟部分运行结果

2.3修改背景画面

2.3.1相关函数

voidCMyDlg:

:

OnPaint()

{

if(IsIconic())

{

CPaintDCdc(this);//devicecontextforpainting

SendMessage(WM_ICONERASEBKGND,(WPARAM)dc.GetSafeHdc(),0);//设置背景

//Centericoninclientrectangle

intcxIcon=GetSystemMetrics(SM_CXICON);

intcyIcon=GetSystemMetrics(SM_CYICON);

CRectrect;

GetClientRect(&rect);

intx=(rect.Width()-cxIcon+1)/2;

inty=(rect.Height()-cyIcon+1)/2;

//Drawtheicon

dc.DrawIcon(x,y,m_hIcon);

}

else

{

CDialog:

:

OnPaint();

}}

2.3.2修改画面运行结果

图4修改系统画面结果

2.4设置闹钟

2.4.1闹钟流程图

 

 

 

图5闹钟流程图

首先获取系统时间,在edit控件中输入闹钟时间以及要显示的文字,判断时间格式是否正确,如果不正确,显示“请输入正确时间!

”并且重新输入时间,如果正确,判断是否点击试听按钮,如果点击,则播放闹钟试音,否则点击设置闹钟。

此时印用SetTimer(1,1000,NULL)函数时间计数器,判断输入时间是否与系统时间一至,是则播放闹钟声音并显示文字,否则继续时间计数,知道与输入的时间一致。

2.4.2闹钟相关函数

三个编辑框添加三个成员m_hour,m_minutes,m_second

然后在classview选项卡下选择onpaint()添加一个计时器SetTimer(1,1000,NULL);

选择Ontimer()

添加代码//获取当前系统时间显示到静态文本框time上

CTimet=CTime:

:

GetCurrentTime();str.Format("%d时%d分%d秒",t.GetHour(),t.GetMinute(),t.GetSecond());

SetDlgItemText(time,str);//判断当前时间与设定时间是否一致

if(s==str)

{

PlaySound("ring\\1134.wav",NULL,SND_FILENAME|SND_ASYNC);

MessageBox(NULL,"TIMEsUP!

",MB_OK);

}

双击设闹钟按钮添加如下代码,将输入的时间与系统时间比对,相同触发提醒事件:

CStringh,m,c;

m_hour.GetWindowText(h);

m_minutes.GetWindowText(m);

m_second.GetWindowText(c);

s=h+"时"+m+"分"+c+"秒";

MessageBox(s,"设定成功",MB_OK);

由于程序用到了playsound函数,在代码开始的地方添加#include

2.4.3闹钟运行结果

图6闹钟运行结果

 

第3章总结

通过对大屏幕数字显示时钟的设计,我对MFC有了初步的了解,相信对将来有很大的帮助。

同时,我也巩固了独立思考的能力。

当然,大屏幕数字时钟的设计只是简单的设计,我同过本次设计学到的东西也有限,我会同过自己的不断努力,完善这方面的知识。

 

参考文献

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 人文社科 > 法律资料

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2