在程序中动态改变控件的背景颜色
2010-08-01 23:51
337 查看
在 view 类中添加消息 WM_CTLCOLOR 的响应函数,以文本控件为例,如下:
HBRUSH CCATestPro2View::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor)
{
HBRUSH hbr = CFormView::OnCtlColor(pDC, pWnd, nCtlColor);
//以下代码自己添加
if ((IDC_EDIT_DECODE == pWnd->GetDlgCtrlID()) && (m_bMTFflag)
&& ((m_nMinTemp * 100) > m_nMinMTFData)) //第一个条件是找到待改动的控件
// 后两个条件是具体程序需要
{
pDC->SetBkMode(TRANSPARENT); //设置背景透明
hbr = CreateSolidBrush(RGB(0, 255, 0)); //设置待返回的画刷颜色
}
//代码添加结束
// TODO: Return a different brush if the default is not desired
return hbr; //返回画刷句柄,绘制色彩由系统完成
}
上面的代码可以在窗口创建的时候响应消息运行。程序中如果要调用这个函数就需要再次传递消息
WM_CTLCOLOR,可以在想要更改控件色彩的地方添加如下代码:
GetDlgItem(IDC_EDIT_DECODE)->RedrawWindow(); //先根据控件ID找到控件,然后redraw即可
更改控件背景颜色也可以用SetBkColor完成,但是这个函数有些缺陷,如果目标控件为文本控件,且其高度不止输入一行文本,那么使用这个函数只能更改第一行的背景色,要想将整个控件背景色彩更改,还需要其他代码辅助完成。
HBRUSH CCATestPro2View::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor)
{
HBRUSH hbr = CFormView::OnCtlColor(pDC, pWnd, nCtlColor);
//以下代码自己添加
if ((IDC_EDIT_DECODE == pWnd->GetDlgCtrlID()) && (m_bMTFflag)
&& ((m_nMinTemp * 100) > m_nMinMTFData)) //第一个条件是找到待改动的控件
// 后两个条件是具体程序需要
{
pDC->SetBkMode(TRANSPARENT); //设置背景透明
hbr = CreateSolidBrush(RGB(0, 255, 0)); //设置待返回的画刷颜色
}
//代码添加结束
// TODO: Return a different brush if the default is not desired
return hbr; //返回画刷句柄,绘制色彩由系统完成
}
上面的代码可以在窗口创建的时候响应消息运行。程序中如果要调用这个函数就需要再次传递消息
WM_CTLCOLOR,可以在想要更改控件色彩的地方添加如下代码:
GetDlgItem(IDC_EDIT_DECODE)->RedrawWindow(); //先根据控件ID找到控件,然后redraw即可
更改控件背景颜色也可以用SetBkColor完成,但是这个函数有些缺陷,如果目标控件为文本控件,且其高度不止输入一行文本,那么使用这个函数只能更改第一行的背景色,要想将整个控件背景色彩更改,还需要其他代码辅助完成。
相关文章推荐
- 动态改变listctrl 单元格背景及文字颜色(非重写控件)
- 怎样在网页的code behind里动态改变控件的背景颜色
- 动态改变网页背景颜色
- 改变List列表控件中的字体颜色和单元格背景颜色
- android样式学习(一) 使用selector改变来动态改变背景颜色
- 动态改变Drawable中我们自定义背景的颜色并设置颜色以16进制进行设置
- VC改变控件的背景颜色 字体 文本颜色
- 动态改变Listview的item背景颜色和item中字体的颜色
- android 用shape画出来的颜色做背景时,动态改变它的颜色值
- winform中GridView控件在选中一行后改变选中行的背景颜色
- vs2008 动态设置Edit Control控件的背景及字体颜色
- 微信小程序中的循环列表,在点击时改变当前项的背景颜色
- 如何通过代码动态改变android的窗口背景颜色
- VC++6.0中改变窗口背景颜色和控件背景颜色,CDC,我的感觉
- Android自定义控件提供颜色属性动态改变控件颜色
- 动态改变table 背景颜色
- 导航条——动态改变导航菜单的背景颜色
- VC++6.0中改变窗口背景颜色和控件背景颜色
- 改变控件背景颜色OnCtlColor
- android gridview点击子选项动态改变item背景颜色