c++电子闹钟设计说明书

上传人:第*** 文档编号:32683300 上传时间:2018-02-12 格式:DOCX 页数:8 大小:257.11KB
返回 下载 相关 举报
c++电子闹钟设计说明书_第1页
第1页 / 共8页
c++电子闹钟设计说明书_第2页
第2页 / 共8页
c++电子闹钟设计说明书_第3页
第3页 / 共8页
c++电子闹钟设计说明书_第4页
第4页 / 共8页
c++电子闹钟设计说明书_第5页
第5页 / 共8页
点击查看更多>>
资源描述

《c++电子闹钟设计说明书》由会员分享,可在线阅读,更多相关《c++电子闹钟设计说明书(8页珍藏版)》请在金锄头文库上搜索。

1、1电子闹钟设计说明书一、实现的功能一个简单的电子闹钟设计程序,和一般的闹钟的功能差不多。首先此程序能够同步电脑上的显示时间,保证时间的准确性;24 小时制,可以根据自己喜欢的铃声设置闹钟提示音,还能自己设置提示语句,如“时间到了该起床了” , “大懒虫,天亮了,该起床了”等等,所以这是一个集实用和趣味于一体的小程序。二、设计步骤1、打开 Microsoft Visual C+ 6.0,在文件中点击新建,在弹出框内选择 MFC AppWizardexe工程,输入工程名张卢锐的闹钟及其所在位置,点击确定,如图所示。2、将弹出 MFC AppWizard-step 1 对话框,选择基本对话框,点击完

2、成,如图所示。2然后一直点下一步,最后点完成,就建立了一个基于对话窗口的程序框架,如图所示。3、下面是计算器的界面设计在控件的“编辑框” 按钮上单击鼠标左键,在对话框编辑窗口上合适的位置按下鼠标左键并拖动鼠标画出一个大小合适的编辑框。在编辑框上单击鼠标右键,在弹出的快捷莱单中选择属性选项,此时弹出 Edit 属性对话框,以显示小时的窗口为例,如图所示,在该对话框中输入 ID 属性。 3在控件的“Button”按钮上单击鼠标左键,在对话框上的合适的位置上按下鼠标左键并拖动鼠标画出一个大小合适的下压式按钮。在按钮上单击鼠标右键,在弹出的快捷菜单中选择属性选项,此时也弹出 Push Button 属

3、性对话框,以数字按钮打开为例,如图所示,在该对话框中输入控件的 ID 值和标题属性。按照上面的操作过程编辑其他按钮对象的属性。表 1 各按钮和编辑框等对象的属性对象 ID 标题或说明编辑框 IDC_HOUR 输入定时的整点时间编辑框 IDC_MINUTE 输入定时的分钟数编辑框 IDC_FILE 链接提示应所在地址编辑框 IDC_WARING 自己编辑显示文本按钮 IDC_OPEN 打开按钮 IDC_IDOK 闹钟开始按钮 IDC_CHANGE 重新输入静态文本 IDC_STATIC 界面上的静态文本,如时,分,备注完成后界面如图所示。44、连接变量和代码1) 、 给编辑框连接变量。在编辑框上

4、单击鼠标右键,在弹出菜单中选择 ClassWizard 菜单项,弹出 MFC ClassWizard 对话框,选择 Member Variables 选项卡,如图所示。2) 、给按钮连接代码(以打开按键为例)给打开按钮连接代码。在打开按钮上单击鼠标右键,选择 ClassWizard 菜单项,在弹出的对话框中选择 Messages Maps 选项卡,然后在 Object IDs 列表框中选择 IDC_HOUR,在Messages 列表框中选择 BN_CLICKED 项,即选择单击按钮事件,如图所示。5三、关键部分的代码1、获取电脑时间和输入定时时间代码:if(onoff=TRUE)CTime t

5、ime;CString strtime,m_stime;time=CTime:GetCurrentTime();strtime=time.Format(%H%M); /获取电脑时间m_stime=m_hour+m_minute; /自己输入时间if(m_stime=strtime)onoff=FALSE;OnOpenMusic();OnTingle();MessageBox(m_waring);2、打开提示音音乐文件代码:void CAlarmclockDlg:OnOpenMusic()/SHELLEXECUTEINFO shell = sizeof(shell) ;6shell.fMask

6、= SEE_MASK_FLAG_DDEWAIT;shell.lpVerb = open;shell.lpFile = m_file;shell.nShow = SW_SHOWNORMAL;BOOL ret = ShellExecuteEx(/打开音乐文件 3、 到达设定时间点闹钟提醒程序:void CAlarmclockDlg:OnTray()NOTIFYICONDATA nid; nid.cbSize=(DWORD)sizeof(NOTIFYICONDATA); nid.hWnd=this-m_hWnd; nid.uID=IDR_MAINFRAME; nid.uFlags=NIF_ICON|

7、NIF_MESSAGE|NIF_TIP ; nid.uCallbackMessage=WM_SHOWTASK;/自定义的消息名称 nid.hIcon=LoadIcon(AfxGetInstanceHandle(),MAKEINTRESOURCE(IDR_MAINFRAME);strcpy(nid.szTip,闹钟提醒);/信息提示条为“计划任务提醒” Shell_NotifyIcon(NIM_ADD,/在托盘区添加图标 4、 计划任务提醒代码:void CAlarmclockDlg:OnTray()NOTIFYICONDATA nid; nid.cbSize=(DWORD)sizeof(NOT

8、IFYICONDATA); nid.hWnd=this-m_hWnd; nid.uID=IDR_MAINFRAME; nid.uFlags=NIF_ICON|NIF_MESSAGE|NIF_TIP ; nid.uCallbackMessage=WM_SHOWTASK;/自定义的消息名称 nid.hIcon=LoadIcon(AfxGetInstanceHandle(),MAKEINTRESOURCE(IDR_MAINFRAME);strcpy(nid.szTip,闹钟提醒);/信息提示条为“计划任务提醒” Shell_NotifyIcon(NIM_ADD,/在托盘区添加图标5、 抖动完成以后回

9、到起始位置放置乱跑和抖动圈数代码:void CAlarmclockDlg:OnTingle()ShowWindow(SW_SHOWNORMAL);CPoint CurrentPos; /抖完还要回到这个位置,不要乱跑。 CRect rect; /这一段计算主要是为了满足 SetWindowPos()的参数要求不解释吧 GetClientRect( ClientToScreen( CurrentPos.x = rect.left;CurrentPos.y = rect.top; int FrameWidth; 7int FrameHight; int CaptionHight; /我当前系统设置

10、上这三个值分别为 3,3,22 FrameWidth = GetSystemMetrics(SM_CXFIXEDFRAME); FrameHight = GetSystemMetrics(SM_CYFIXEDFRAME); CaptionHight = GetSystemMetrics(SM_CYCAPTION); /这是个好函数 /这里需要将CurrentPos 坐标 offset()到主窗口左上角坐标 CurrentPos.Offset(-FrameWidth, -CaptionHight-FrameHight); /实现抖动: 半个小圈 + 三个大圈 + 半个小圈 SetWindowPo

11、s( Sleep(10);/上面的 SWP_NOSIZE 参数忽略 cx,cy,故可置 0 SetWindowPos( Sleep(10); SetWindowPos( Sleep(10); SetWindowPos( Sleep(10); int i = 0;for (;i7;i+) /想抖几圈就改几 SetWindowPos( Sleep(10); SetWindowPos( Sleep(10); SetWindowPos( Sleep(10); SetWindowPos( Sleep(10); SetWindowPos( Sleep(10); SetWindowPos( Sleep(10); SetWindowPos( Sleep(10); SetWindowPos( Sleep(10); SetWindowPos( Sleep(10); SetWindowPos( Sleep(10); SetWindowPos( Sleep(10); SetWindowPos( 6、测试计算器的功能81.程序主界面2、输入 15:10,选择打开音乐文件,和提示语句,运行结果如下提示音乐会由相应的播放器开始播放,执行效果很不错。

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 中学教育 > 职业教育

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号