C++电子闹钟设计说明书.docx

上传人:小飞机 文档编号:3153810 上传时间:2023-03-11 格式:DOCX 页数:6 大小:38.81KB
返回 下载 相关 举报
C++电子闹钟设计说明书.docx_第1页
第1页 / 共6页
C++电子闹钟设计说明书.docx_第2页
第2页 / 共6页
C++电子闹钟设计说明书.docx_第3页
第3页 / 共6页
C++电子闹钟设计说明书.docx_第4页
第4页 / 共6页
C++电子闹钟设计说明书.docx_第5页
第5页 / 共6页
亲,该文档总共6页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《C++电子闹钟设计说明书.docx》由会员分享,可在线阅读,更多相关《C++电子闹钟设计说明书.docx(6页珍藏版)》请在三一办公上搜索。

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

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

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

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

5、e; 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) ; 5 shell.f

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

7、.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,&nid);/在托盘区添加图标 4、 计划任务提醒代码: void CAlarmclockDlg:OnTray NOTIFYICONDATA nid; nid.cb

8、Size=(DWORD)sizeof(NOTIFYICONDATA); 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_AD

9、D,&nid);/在托盘区添加图标 5、抖动完成以后回到起始位置放置乱跑和抖动圈数代码: void CAlarmclockDlg:OnTingle ShowWindow(SW_SHOWNORMAL); CPoint CurrentPos; /抖完还要回到这个位置,不要乱跑。 CRect rect; /这一段计算主要是为了满足SetWindowPos的参数要求不解释吧 GetClientRect(&rect); ClientToScreen(&rect); CurrentPos.x = rect.left; CurrentPos.y = rect.top; int FrameWidth; 6 i

10、nt FrameHight; int CaptionHight; /我当前系统设置上这三个值分别为3,3,22 FrameWidth = GetSystemMetrics(SM_CXFIXEDFRAME); FrameHight = GetSystemMetrics(SM_CYFIXEDFRAME); CaptionHight = GetSystemMetrics(SM_CYCAPTION); /这是个好函数 /这里需要将CurrentPos坐标offset到主窗口左上角坐标 CurrentPos.Offset(-FrameWidth, -CaptionHight-FrameHight); /

11、实现抖动: 半个小圈 + 三个大圈 + 半个小圈 SetWindowPos(&wndTopMost,CurrentPos.x-1,CurrentPos.y-2,0,0, SWP_NOSIZE); Sleep(10);/上面的SWP_NOSIZE参数忽略cx,cy,故可置0 SetWindowPos(&wndTopMost,CurrentPos.x-4,CurrentPos.y-4,0,0, SWP_NOSIZE); Sleep(10); SetWindowPos(&wndTopMost,CurrentPos.x-7,CurrentPos.y-2,0,0, SWP_NOSIZE); Sleep(

12、10); SetWindowPos(&wndTopMost,CurrentPos.x-8,CurrentPos.y,0,0, SWP_NOSIZE); Sleep(10); int i = 0; for (;i7;i+) /想抖几圈就改几 SetWindowPos(&wndTopMost,CurrentPos.x-6,CurrentPos.y+6,0,0, SWP_NOSIZE); Sleep(10); SetWindowPos(&wndTopMost,CurrentPos.x,CurrentPos.y+8,0,0, SWP_NOSIZE); Sleep(10); SetWindowPos(&

13、wndTopMost,CurrentPos.x+6,CurrentPos.y+6,0,0, SWP_NOSIZE); Sleep(10); SetWindowPos(&wndTopMost,CurrentPos.x+8,CurrentPos.y,0,0, SWP_NOSIZE); Sleep(10); SetWindowPos(&wndTopMost,CurrentPos.x+6,CurrentPos.y-6,0,0, SWP_NOSIZE); Sleep(10); SetWindowPos(&wndTopMost,CurrentPos.x,CurrentPos.y-8,0,0, SWP_NO

14、SIZE); Sleep(10); SetWindowPos(&wndTopMost,CurrentPos.x-6,CurrentPos.y-6,0,0, SWP_NOSIZE); Sleep(10); SetWindowPos(&wndTopMost,CurrentPos.x-8,CurrentPos.y,0,0, SWP_NOSIZE); Sleep(10); SetWindowPos(&wndTopMost,CurrentPos.x-7,CurrentPos.y+2,0,0, SWP_NOSIZE); Sleep(10); SetWindowPos(&wndTopMost,CurrentPos.x-4,CurrentPos.y+4,0,0, SWP_NOSIZE); Sleep(10); SetWindowPos(&wndTopMost,CurrentPos.x-1,CurrentPos.y+2,0,0, SWP_NOSIZE); Sleep(10); SetWindowPos(&wndTopMost,CurrentPos.x,CurrentPos.y,0,0, SWP_NOSIZE); 6、测试计算器的功能 7 1.程序主界面 2、输入15:10,选择打开音乐文件,和提示语句,运行结果如下 提示音乐会由相应的播放器开始播放,执行效果很不错。 8

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

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号