收藏 分享(赏)

Visual C++调整对话框背景颜色代码.docx

上传人:fmgc7290 文档编号:6211636 上传时间:2019-04-02 格式:DOCX 页数:4 大小:20.43KB
下载 相关 举报
Visual C++调整对话框背景颜色代码.docx_第1页
第1页 / 共4页
Visual C++调整对话框背景颜色代码.docx_第2页
第2页 / 共4页
Visual C++调整对话框背景颜色代码.docx_第3页
第3页 / 共4页
Visual C++调整对话框背景颜色代码.docx_第4页
第4页 / 共4页
亲,该文档总共4页,全部预览完了,如果喜欢就下载吧!
资源描述

1、【例 Ex_BkColor】调整对话框背景颜色 用 MFC AppWizard(exe)创建一个默认的对话框应用程序Ex_BkColor。 将对话框的标题设为“调整对话框背景颜色” 。删除“TODO: 在这里设置对话控制。 ”静态文本控件和取消按钮,将确定按钮标题改为“退出” 。 打开对话框网格,调整对话框大小为 ,参看图 11.38的控件布局,添加如表 11.19所示的一些控件。表 11.19 对话框添加的控件添加的控件 ID 标识符 标 题 其他属性水平滚动条(红色)IDC_SCROLLBAR_RED 默认滑动条(绿色) IDC_SLIDER_GREEN 默认滑动条(蓝色) IDC_SLI

2、DER_BLUE 默认 打开 ClassWizard的 Member Variables页面,选中所需的控件 ID标识符,双击鼠标。依次添加下列控件变量,如表11.20所示。表 11.20 控件变量控件 ID 标识符变量类别变量类型 变量名范围和大小IDC_SCROLLBAR_REDControl CScrollBarm_scrollRedIDC_SLIDER_GREENControl CSliderCtrlm_sliderGreenIDC_SLIDER_GREENValue int m_nGreenIDC_SLIDER_BLUEControl CSliderCtrlm_sliderBlueI

3、DC_SLIDER_BLUEValue int m_nBlue 为 CEx_BkColorDlg类添加两个成员变量,一个是 int型m_nRedValue,用来指定 RGB中的红色分量,另一个是画刷CBrush类对象 m_Brush,用来设置对话框背景所需要的画刷。在OnInitDialog中添加下列初始化代码:BOOL CEx_BkColorDlg:OnInitDialog()CDialog:OnInitDialog();/ TODO: Add extra initialization herem_scrollRed.SetScrollRange(0, 255);m_sliderBlue.S

4、etRange(0, 255);m_sliderGreen.SetRange(0, 255);m_nBlue = m_nGreen = m_nRedValue = 192;UpdateData( FALSE );m_scrollRed.SetScrollPos(m_nRedValue);return TRUE; / return TRUE unless you set the focus to a control 用 MFC ClassWizard为 CEx_BkColorDlg类添加WM_HSCROLL消息映射,并添加下列代码:void CEx_BkColorDlg:OnHScroll(UI

5、NT nSBCode, UINT nPos, CScrollBar* pScrollBar) int 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

6、 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); 用 MFC ClassWizard为 CEx_BkColorDlg类添加WM_CTLCOLOR消息映射,并添加下列代码:HB

7、RUSH CEx_BkColorDlg:OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor) UpdateData(TRUE);COLORREF color = RGB(m_nRedValue, m_nGreen, m_nBlue);m_Brush.Detach(); / 使画刷和对象分离m_Brush.CreateSolidBrush(color); / 创建颜色画刷pDC-SetBkColor( color ); / 设置背景颜色return (HBRUSH)m_Brush; / 返回画刷句柄,以便系统使此画刷绘制对话框代码中,COLORREF 是用来表示 RGB颜色的一个 32位的数据类型,它是 Visual C+中一种专门用来定义颜色的数据类型。 (画刷的详细用法以后还会讨论) 编译运行并测试。需要说明的是:由于滚动条和滑动条等许多控件都能产生 WM_HSCROLL或 WM_VSCROLL消息,因此当它们是处在同一方向(水平或垂直)时,就需要添加相应代码判断消息是谁产生的。同时,由于滚动条中间的滚动块在默认时是不会停止在用户操作的位置处的,因此需要调用 SetScrollPos函数来进行相应位置的设定。

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

当前位置:首页 > 网络科技 > C/C++资料

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报