资源预览内容
第1页 / 共18页
第2页 / 共18页
第3页 / 共18页
第4页 / 共18页
第5页 / 共18页
第6页 / 共18页
第7页 / 共18页
第8页 / 共18页
第9页 / 共18页
第10页 / 共18页
亲,该文档总共18页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
MFC课程设计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);nI
收藏 下载该资源
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号