MFC课程设计调整对话框背景颜色

上传人:壹****1 文档编号:457739790 上传时间:2022-09-16 格式:DOC 页数:18 大小:236KB
返回 下载 相关 举报
MFC课程设计调整对话框背景颜色_第1页
第1页 / 共18页
MFC课程设计调整对话框背景颜色_第2页
第2页 / 共18页
MFC课程设计调整对话框背景颜色_第3页
第3页 / 共18页
MFC课程设计调整对话框背景颜色_第4页
第4页 / 共18页
MFC课程设计调整对话框背景颜色_第5页
第5页 / 共18页
点击查看更多>>
资源描述

《MFC课程设计调整对话框背景颜色》由会员分享,可在线阅读,更多相关《MFC课程设计调整对话框背景颜色(18页珍藏版)》请在金锄头文库上搜索。

1、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.设计分析本程序用到了一些基于对话框的类,实现对话框的各种功能2.1应用的类图2.1 ClassView2.2成员函数程序里的成员函数如下1、BOOL CWLHDlg:OnInitDialog()2、void CWLHDlg:OnHScroll(UINT nSBCode, UINT nPos, CScrollBar* pScrollBar) 3、HBRUSH CWLHDlg:

3、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

4、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:OnInitDial

5、og();/ 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

6、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_nRe

7、dValue = 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 n

8、ID = 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:

9、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);/ TOD

10、O: 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;/ 返回画刷句

11、柄,以便系统使此画刷绘制对话框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

12、); 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 hw

13、nd,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

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

当前位置:首页 > 医学/心理学 > 基础医学

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