




已阅读5页,还剩13页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
此文档收集于网络,如有侵权,请联系网站删除MFC课程设计课题名称:调整对话框背景颜色专业班级:1020562班学生学号:学生姓名: 指导教师: 提交时间:2011年12月10日目录1.设计描述31.1课题背景31.2功能描述32.设计分析42.1应用的类42.2成员函数43.源代码及图形64.设计总结174.1个人心得174.2参考文献171.设计描述1.1课题背景 本课题主要是在为了让自己更加了解在MFC中框架类中的各种函数的应用。本程序是在VC6.0中使用AppWizard创建基于对话框的应用程序。1.2功能描述本程序能够改变对话框的背景颜色。对话框中有滚动条和滑动块,通过调节滚动条或滑动块来改变对话框的背景颜色。除此以外,该对话框可以最小化,最大化功能。点击关闭按钮时,会出现提示对话框,提示对话框中有“退出应用程序”,“返回到托盘”,“不再提示”选择按钮供你选择。另外托盘图标是闪动变换的,托盘图标还可以打开子菜单。最小化:最大化:2.设计分析本程序用到了一些基于对话框的类,实现对话框的各种功能2.1应用的类图2.1 ClassView2.2成员函数程序里的成员函数如下1、BOOL CWLHDlg:OnInitDialog()2、void CWLHDlg:OnHScroll(UINT nSBCode, UINT nPos, CScrollBar* pScrollBar) 3、HBRUSH CWLHDlg:OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor) 4、BOOL CWLHDlg:AddTray(HWND hWnd, LPSTR lpszTip)/添加图标到托盘5、BOOL CTestDlg:RemoveTray(HWND hwnd)/删除托盘中的图标6、BOOL CTestDlg:ModifyTray(HWND hwnd,UINT uID)/修改托盘中的图标7、void CWLHDlg:OnTimer(UINT nIDEvent) /更换图标8、void CTestDlg:OnTrayNotify(WPARAM wParam, LPARAM lParam)9、void CTestDlg:OnDestroy()/结束图标更换 10、void CTestDlg:OnOpen()/打开子菜单项 11、void CTestDlg:OnExit()/退出子菜单项12、void CWLHDlg:OnAbout() /关于子菜单13、void CWLHDlg:OnClose() /关闭背景对话框14、void CWLHDlg:Inquiry()/询问对话框各个类的成员函数和数据成员如图2.2-1,图2.2-2所示 图2.2-1 图2.2-23.源代码及图形BOOL CWLHDlg:OnInitDialog()CDialog:OnInitDialog();/ 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 herem_scrollRed.SetScrollRange(0, 255);m_sliderBlue.SetRange(0, 255);m_sliderGreen.SetRange(0, 255);m_nBlue = m_nGreen = m_nRedValue = 192;UpdateData( FALSE );m_scrollRed.SetScrollPos(m_nRedValue); SetWindowText(调整对话框背景颜色);return TRUE; / return TRUE unless you set the focus to a controlvoid CWLHDlg:OnHScroll(UINT nSBCode, UINT nPos, CScrollBar* pScrollBar) / TODO: Add your message handler code here and/or call defaultint nID = pScrollBar-GetDlgCtrlID();/ 获取对话框中控件ID值if (nID = IDC_SCROLLBAR_RED)/ 若是滚动条产生的水平滚动消息switch(nSBCode)case SB_LINELEFT:m_nRedValue-;/ 单击滚动条左边箭头break;case SB_LINERIGHT:m_nRedValue+;/ 单击滚动条右边箭头break;case SB_PAGELEFT:m_nRedValue -= 10;break;case SB_PAGERIGHT:m_nRedValue += 10;break;case SB_THUMBTRACK:m_nRedValue = nPos;break;if (m_nRedValue255) m_nRedValue = 255;m_scrollRed.SetScrollPos(m_nRedValue);Invalidate();/ 使对话框无效,强迫系统重绘对话框CDialog:OnHScroll(nSBCode, nPos, pScrollBar);HBRUSH CWLHDlg:OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor) HBRUSH hbr = CDialog:OnCtlColor(pDC, pWnd, nCtlColor);/ TODO: Change any attributes of the DC here/ TODO: Return a different brush if the default is not desiredUpdateData(TRUE);COLORREF color = RGB(m_nRedValue, m_nGreen, m_nBlue);m_Brush.Detach();/ 使画刷和对象分离m_Brush.CreateSolidBrush(color);/ 创建颜色画刷pDC-SetBkColor( color );/ 设置背景颜色return (HBRUSH)m_Brush;/ 返回画刷句柄,以便系统使此画刷绘制对话框return hbr;以上代码实现对话框背景颜色调整功能 图3-1/添加图标到托盘BOOL CWLHDlg:AddTray(HWND hWnd, LPSTR lpszTip)NOTIFYICONDATA tnid; tnid.cbSize=sizeof(NOTIFYICONDATA); tnid.hWnd=hWnd; tnid.uFlags=NIF_MESSAGE | NIF_ICON | NIF_TIP; tnid.uCallbackMessage=WM_ICON_NOTIFY; tnid.hIcon=AfxGetApp()-LoadIcon(IDI_ICON1); strcpy(tnid.szTip,lpszTip); return Shell_NotifyIcon(NIM_ADD, &tnid); 添加图标到托盘如下图图3-2图3-1/删除托盘中的图标BOOL CTestDlg:RemoveTray(HWND hwnd)/删除托盘中的图标 NOTIFYICONDATA tnid; tnid.cbSize=sizeof(NOTIFYICONDATA); tnid.hWnd=hwnd; return Shell_NotifyIcon(NIM_DELETE,&tnid);/修改托盘中的图标BOOL CTestDlg:ModifyTray(HWND hwnd,UINT uID)/修改托盘中的图标 NOTIFYICONDATA tnid; tnid.cbSize=sizeof(NOTIFYICONDATA); tnid.hWnd=hwnd; tnid.uFlags=NIF_ICON; tnid.hIcon=AfxGetApp()-LoadIcon(uID); return Shell_NotifyIcon(NIM_MODIFY, &tnid);/更换图标void CWLHDlg:OnTimer(UINT nIDEvent) /更换图标/ TODO: Add your message handler code here and/or call defaultstaticUINT nIDs=IDI_ICON1,IDI_ICON2,IDI_ICON3,IDI_ICON4;static int nIndex=1;ModifyTray(m_hWnd,nIDsnIndex);nIndex=+nIndex%4;CDialog:OnTimer(nIDEvent);/结束图标更换void CTestDlg:OnDestroy()/结束图标更换 CDialog:OnDestroy();/ TODO: Add your message handler code hereKillTimer(1);RemoveTray(m_hWnd);void CTestDlg:OnTrayNotify(WPARAM wParam, LPARAM lParam)if(WM_RBUTTONDOWN=lParam)CMenu menu;menu.LoadMenu(IDR_MENU1);CPoint point;GetCursorPos(&point);/得到鼠标位置CMenu *popup=menu.GetSubMenu(0);popup-TrackPopupMenu(TPM_LEFTALIGN|TPM_RIGHTBUTTON, point.x, point.y, this);return;if(WM_LBUTTONDOWN=lParam)ShowWindow(SW_SHOWNORMAL); SetForegroundWindow();return;图3-3/打开子菜单项void CTestDlg:OnOpen()/打开子菜单项 / TODO: Add your command handler code hereShowWindow(SW_SHOWNORMAL); SetForegroundWindow();/退出子菜单项void CTestDlg:OnExit()/退出子菜单项/ TODO: Add your command handler code herePostQuitMessage(0);以上代码实现功能如下图 图3-4 图3-5/关于对话框void CWLHDlg:OnAbout() / TODO: Add your command handler code hereMessageBox(WLH制作n2011年12月,关于,MB_ICONEXCLAMATION |MB_OK);/关闭背景对话框void CWLHDlg:OnClose() /关闭背景对话框/ TODO: Add your message handler code here and/or call defaultHKEY hKey;if(ERROR_SUCCESS=RegOpenKeyEx(HKEY_LOCAL_MACHINE,wlh,0,KEY_READ,&hKey)if(1=nCheck)if(0=nRadio)PostQuitMessage(0);elseAddTray(m_hWnd,改变背景);ShowWindow(SW_HIDE);SetTimer(1,500,NULL);elseInquiry();elseInquiry();RegCloseKey(hKey);/询问对话框void CWLHDlg:Inquiry()/询问对话框CInquiry inq;inq.DoModal();/打开询问对话框nRadio=inq.m_n;if(inq.m_chk)/是否选择不再提示选框nCheck=1;/标志为1elsenCheck=0;/标志为0if(0=nRadio)/选择直接退出PostQuitMessage(0);else/选择返回托盘AddTray(m_hWnd,改变背景);ShowWindow(SW_HIDE);/隐藏主窗口SetTimer(1,500,NULL);所用功能的实现如下图运行结果:图3-6最大化: 图3-7最小化: 图3-8点击运行关闭按钮: 图3-9 图3-10托盘子菜单: 图
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 护理配药计算讲解
- 管理学原理组织结构
- 居民议事协商能力提升培训
- 永煤消防考试题库及答案
- 银行研发面试题目及答案
- 中国好老师信息技术与学科教学深度融合培训心得体会模版
- 2025年苏教版科学小学四年级下册期末复习检测题附答案(三)
- 阳城公务员考试题及答案
- 叙永公务员考试题目及答案
- 行政公务员的考试题及答案
- 电气工程及其自动化毕业设计 基于PLC的喷涂机器人控制系统的设计
- 管理学基础-形考任务三-国开-参考资料
- 团员发展纪实簿
- 高频变压器作业指导书
- 事业单位招聘人员体检表
- Visio图标-visio素材-网络拓扑图库
- 轨道交通建设工程施工现场消防安全管理课件
- 绿色施工策划书(模板)
- 腾讯微博VS新浪微博
- 公共政策导论完整版课件全套ppt教学教程(最新)
- 肺癌生活质量量表
评论
0/150
提交评论