




已阅读5页,还剩8页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
一、实验名称日程管理系统。二、实验目的1掌握类和对象的使用;2掌握定时器等的使用。三、实验要求开发一个日程管理程序,程序提供添加日程任务功能,如几点几分要做某事,当机器时间到此时刻后系统会弹出该日程提示。可查看添加过的所有任务,系统可最小化到任务栏。四、实验步骤1. 题目分析开发一个日程备忘录程序,有添加日程事务及时间功能,按添加键可将添加事务在列表中显示以备查看,到所定时间会有窗口提示用户,也可最小化到任务栏。2. 构造界面3. 关键类和函数设计4. 编译、调试并运行五、实验数据及处理结果1程序功能介绍a. 添加日程事务;b. 日程提醒;c. 查看日程事务;d. 最小化到托盘;e. 超链接百度。2关键代码/ CRichengDlg dialogCRichengDlg:CRichengDlg(CWnd* pParent /*=NULL*/): CDialog(CRichengDlg:IDD, pParent)/AFX_DATA_INIT(CRichengDlg)m_date = 0; /初始化数据m_time = 0;m_event = _T();/AFX_DATA_INIT/ Note that LoadIcon does not require a subsequent DestroyIcon in Win32m_hIcon = AfxGetApp()-LoadIcon(IDR_MAINFRAME);void CRichengDlg:DoDataExchange(CDataExchange* pDX)CDialog:DoDataExchange(pDX);/AFX_DATA_MAP(CRichengDlg)DDX_Control(pDX, IDC_STATIC1, m_num);DDX_Control(pDX, IDC_LIST1, m_listc);DDX_DateTimeCtrl(pDX, IDC_DATETIMEPICKER1, m_date);DDX_DateTimeCtrl(pDX, IDC_DATETIMEPICKER2, m_time);DDX_Text(pDX, IDC_EDIT1, m_event);/AFX_DATA_MAPBEGIN_MESSAGE_MAP(CRichengDlg, CDialog)/AFX_MSG_MAP(CRichengDlg)ON_WM_SYSCOMMAND() /消息映射定义ON_WM_PAINT()ON_WM_QUERYDRAGICON()ON_BN_CLICKED(IDC_BUTTON1, Ontianjia)ON_NOTIFY(NM_CLICK, IDC_LIST1, OnClickList1)ON_MESSAGE(WM_NC,OnNotifyIcon)ON_WM_TIMER()ON_NOTIFY(NM_RCLICK, IDC_LIST1, OnRclickList1)ON_COMMAND(IDS_menu,Onmenu)ON_BN_CLICKED(IDC_STATIC2, Onlink)ON_WM_CTLCOLOR()/AFX_MSG_MAPEND_MESSAGE_MAP()/ CRichengDlg message handlersBOOL CRichengDlg:OnInitDialog()CDialog:OnInitDialog();num=0; /列表初始化CString mm;mm.Format(共有记录%d条,num);m_num.SetWindowText(mm); DWORD dwStyle;dwStyle = m_listc.GetStyle();dwStyle |= LVS_EX_GRIDLINES |LVS_EX_FULLROWSELECT|LVS_SHOWSELALWAYS ;m_listc.SetExtendedStyle(dwStyle); m_listc.SetBkColor(RGB(234,234,234);m_listc.SetTextBkColor(RGB(221,221,221);m_listc.InsertColumn(0,时间,LVCFMT_LEFT,168);m_listc.InsertColumn(1,待办事务,LVCFMT_LEFT,237);num=0;SetTimer(1,1000,NULL); /设定计时器/ 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 CRichengDlg:OnSysCommand(UINT nID, LPARAM lParam)if (nID & 0xFFF0) = IDM_ABOUTBOX)CAboutDlg dlgAbout;dlgAbout.DoModal();else if( (nID & 0xFFF0) = SC_MINIMIZE) toTray(); /放入托盘的函数 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 CRichengDlg: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);elseCRect rect; CPaintDC dc(this); GetClientRect(rect); dc.FillSolidRect(rect,RGB(222,247,252); /设置背景颜色 CDialog:OnPaint();/ The system calls this to obtain the cursor to display while the user drags/ the minimized window.HCURSOR CRichengDlg:OnQueryDragIcon()return (HCURSOR) m_hIcon;void CRichengDlg:Ontianjia() /添加按钮功能实现 UpdateData(TRUE); /数据导入CString date,time;GetDlgItem(IDC_DATETIMEPICKER1)-GetWindowText(date); /获取日期GetDlgItem(IDC_DATETIMEPICKER2)-GetWindowText(time); /获取时间m_listc.InsertItem(num,date+ +time);m_listc.SetItemText(num,1,m_event); /日期时间事务在列表中显示num+;/ TODO: Add your control notification handler code herevoid CRichengDlg:OnClickList1(NMHDR* pNMHDR, LRESULT* pResult) / TODO: Add your control notification handler code hereLPNMITEMACTIVATE pNMItemActivate = reinterpret_cast(pNMHDR);if(pNMItemActivate-iItem!=-1)choose=pNMItemActivate-iItem;*pResult = 0;BOOL CRichengDlg:OnNotify(WPARAM wParam, LPARAM lParam, LRESULT* pResult) / TODO: Add your specialized code here and/or call the base classreturn CDialog:OnNotify(wParam, lParam, pResult);void CRichengDlg:OnNotifyIcon(WPARAM wParam,LPARAM IParam) if (IParam = WM_LBUTTONUP) / 左键单击弹出主界面 ModifyStyleEx(0,WS_EX_TOPMOST); ShowWindow(SW_SHOW); else if (IParam = WM_RBUTTONDOWN) /右键单击弹出主菜单 void CRichengDlg:toTray()m_NotifyIcon.cbSize=sizeof(NOTIFYICONDATA); m_NotifyIcon.hIcon=AfxGetApp()-LoadIcon(IDR_MAINFRAME); / 装载程序图标 m_NotifyIcon.hWnd=m_hWnd; lstrcpy(m_NotifyIcon.szTip,beskit v1.0); / 这里是鼠标移到托盘图标时的提示信息 m_NotifyIcon.uCallbackMessage=WM_NC; m_NotifyIcon.uFlags=NIF_ICON | NIF_MESSAGE | NIF_TIP; Shell_NotifyIcon(NIM_ADD,&m_NotifyIcon); / 添加托盘图标ShowWindow(SW_HIDE); / 隐藏主窗口void CRichengDlg:OnTimer(UINT nIDEvent) /响应定时器/ TODO: Add your message handler code here and/or call defaultCString mm;mm.Format(共有记录%d条,num); m_num.SetWindowText(mm);int i,j,k;SYSTEMTIME time;CString temp;CString temp_1;GetLocalTime(&time); temp.Format(%d年%d月%d日 %d:%d:%d,time.wYear,time.wMonth,time.wDay,time.wHour,time.wMinute,time.wSecond);k=0;for(i=0;inum;i+)CString temp_2;temp_1=m_listc.GetItemText(i,0);temp_2+=temp_1.GetAt(0);for(j=1;jtemp_1.GetLength();j+)if(jtemp_1.GetLength()-2) if(temp_1.GetAt(j)=0&(temp_1.GetAt(j+2)=:|temp_1.GetAt(j-1)=:) j+;elseif(temp_1.GetAt(j)=0&temp_1.GetAt(j-1)=:) j+; char check20;if(j+ktemp_1.GetLength()-4)int k;for(k=0;k4;k+)checkk=temp_1.GetAt(j+k);checkk=0;if(strcmp(check,星期)=0)j+=6;/if(strcmp(check,星期)!=0) temp_2+=temp_1.GetAt(j);if(temp_2=temp)CString a;a=m_listc.GetItemText(i,1);m_listc.DeleteItem(i);num-;PlaySound(MAKEINTRESOURCE(IDR_WAVE1),AfxGetResourceHandle(),SND_ASYNC|SND_RESOURCE|SND_NODEFAULT); /设置提醒音乐 MessageBox(a); /设置提醒窗口CDialog:OnTimer(nIDEvent);void CRichengDlg:OnRclickList1(NMHDR* pNMHDR, LRESULT* pResult) / TODO: Add your control notification handler code hereLPNMITEMACTIVATE pNMItemActivate = reinterpret_cast(pNMHDR);if(pNMItemActivate-iItem!=-1)choose=pNMItemActivate-iItem;CPoint pt;CMenu menu;:GetCursorPos(&pt);menu.CreatePopupMenu();menu.AppendMenu(MF_STRING,IDS_menu,删除记录); /删除记录menu.TrackPopupMenu(TPM_LEFTALIGN,pt.x,pt.y,this);menu.DestroyMenu();*pResult = 0;void CRichengDlg:Onmenu(UINT)m_listc.DeleteItem(choose);num-;void CRichengDlg:Onlink() / TODO: Add your control notification handler code hereShellExecute(NULL, NULL, _T(), NULL, NULL, SW_SHOWNORMAL); HBRUSH CRichengDlg:OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor)/颜色设定HBRUSH hbr = CDialog:OnCtlColor(pDC, pWnd, nCtlColor); switch (nCtlColor) case CTLCOLOR_STATIC: /静态文本 pDC-SetBkMode(TRANSPARENT); HBRUSH B = CreateSolidBrush(RGB( 222,247,252); /控件背景颜色 pDC-SetTextColor(RGB(51,51,255); /控件中的文字颜色 return (HBRUSH) B; case CTLCOLOR_LISTBOX: / 列表框 pDC-SetBkMode(TRANSPARENT); HBRUSH B = CreateSolidBrush(RGB(234,234,234); pDC-SetTextColor(RGB(255,0,0); return (HBRUSH) B; case CTLCOLOR_DLG : /对话框 pDC-SetBkMode(TRANSP
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 理科综合考试重点知识梳理与测试卷
- 人力资源招聘流程管理及面试题库
- 零售行业薪酬体系设计与实施方案
- 合同拟订审查课件
- 合同履行与担保课件
- 五年级数学倍数与因数知识点总结
- 智慧城市建设目标责任书范本(4篇)
- 运输合同风险防范与法律解析
- 秋天的枫叶大自然的魅力写景6篇范文
- 招聘人员手册及求职者分析模板
- 企业合规经营及纳税证明书(5篇)
- 2025年推土犁司机职业技能鉴定参考试题库(含答案)
- 2025年云南文山砚山七乡发展投资有限公司招聘笔试参考题库含答案解析
- 湘艺版小学音乐四年级上册全册教案1
- 中医养生馆合作协议书范本
- 海底捞晋升面试题及答案
- 2025年理综试题及答案全国乙卷
- 2025年二次供水市场规模分析
- 《鲁迅《呐喊》课件演示》
- 穿越机的基础知识
- 房屋市政工程生产安全重大事故隐患排查表(2024版)
评论
0/150
提交评论