MFC中改变控件的背景颜色
2011-04-02 15:24
295 查看
这里讲述两种改变MFC控件背景颜色的方法:
方法一:用OnCtlColor消息函数,改变特定控件的背景
首先在头文件的类中定义CBush类的变量 brush 如语句:CBrush brush;
然后在源文件的构造函数中初始化:brush.CreateSolidBrush(RGB(255,0,0));
RGB( , , ) 控制颜色,分别为红,绿,蓝,三个一样显示灰色背景,都为255为白色,都为0为黑色
然后再消息函数中写代码如下:
HBRUSH CFilePlayDlg::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor)
{
HBRUSH hbr = CDialog::OnCtlColor(pDC, pWnd, nCtlColor);
// TODO: 在此更改 DC 的任何属性
// TODO: 如果默认的不是所需画笔,则返回另一个画笔
if(pWnd->GetDlgCtrlID() == IDC_FILE_PLAY)
{
pDC->SetBkColor(RGB(0,0,0));
HBRUSH brush = CreateSolidBrush(RGB(0,0,0));
return brush;
}
return hbr;
}
方法二:
也用这个消息函数
HBRUSH CFilePlayDlg::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor)
{
HBRUSH hbr = CDialog::OnCtlColor(pDC, pWnd, nCtlColor);
if(nCtlColor==CTLCOLOR_STATIC)
{
pDC->SetBkColor(RGB(0,0,0));
HBRUSH b=CreateSolidBrush(RGB(0,0,0));
return b;
}
return hbr;
}
// 这里指定控件类型为静态类型,可以指定为其他类型,如CTLCOLOR_BTN 按钮控件 · CTLCOLOR_DLG 对话框 · CTLCOLOR_EDIT 编辑控件 · CTLCOLOR_LISTBOX 列表框控件 · CTLCOLOR_MSGBOX 消息框 · CTLCOLOR_SCROLLBAR 滚动条控件 · CTLCOLOR_STATIC 静态控件
这个方法省略了定义brush这个变量,直接在函数中用CreateSolidBrush生成一个画刷b,然后返回b。
方法一:用OnCtlColor消息函数,改变特定控件的背景
首先在头文件的类中定义CBush类的变量 brush 如语句:CBrush brush;
然后在源文件的构造函数中初始化:brush.CreateSolidBrush(RGB(255,0,0));
RGB( , , ) 控制颜色,分别为红,绿,蓝,三个一样显示灰色背景,都为255为白色,都为0为黑色
然后再消息函数中写代码如下:
HBRUSH CFilePlayDlg::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor)
{
HBRUSH hbr = CDialog::OnCtlColor(pDC, pWnd, nCtlColor);
// TODO: 在此更改 DC 的任何属性
// TODO: 如果默认的不是所需画笔,则返回另一个画笔
if(pWnd->GetDlgCtrlID() == IDC_FILE_PLAY)
{
pDC->SetBkColor(RGB(0,0,0));
HBRUSH brush = CreateSolidBrush(RGB(0,0,0));
return brush;
}
return hbr;
}
方法二:
也用这个消息函数
HBRUSH CFilePlayDlg::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor)
{
HBRUSH hbr = CDialog::OnCtlColor(pDC, pWnd, nCtlColor);
if(nCtlColor==CTLCOLOR_STATIC)
{
pDC->SetBkColor(RGB(0,0,0));
HBRUSH b=CreateSolidBrush(RGB(0,0,0));
return b;
}
return hbr;
}
// 这里指定控件类型为静态类型,可以指定为其他类型,如CTLCOLOR_BTN 按钮控件 · CTLCOLOR_DLG 对话框 · CTLCOLOR_EDIT 编辑控件 · CTLCOLOR_LISTBOX 列表框控件 · CTLCOLOR_MSGBOX 消息框 · CTLCOLOR_SCROLLBAR 滚动条控件 · CTLCOLOR_STATIC 静态控件
这个方法省略了定义brush这个变量,直接在函数中用CreateSolidBrush生成一个画刷b,然后返回b。
相关文章推荐
- MFC窗体上的STATIC控件鼠标移上去改变文本和背景颜色,鼠标离开恢复正常
- 改变MFC控件背景颜色
- 改变背景图像后如何消除各控件的背景颜色
- 改变MFC对话框背景色、控件内的字体颜色和背景色
- MFC EDIT控件中改变背景色和文字颜色
- OnCtlColor函数:MFC设置静态文本框,编辑框等控件背景和字体颜色
- 改变List列表控件中的字体颜色和单元格背景颜色
- mfc 中改变背景颜色
- MFC EDIT控件中改变背景色和文字颜色
- MFC改变窗口背景颜色
- VC++改变窗口背景颜色和使得Static控件背景透明
- VC++6.0中改变窗口背景颜色和控件背景颜色
- 在程序中动态改变控件的背景颜色
- OnCtlColor函数:MFC设置静态文本框,编辑框等控件背景和字体颜色
- VC改变控件的背景颜色 字体 文本颜色
- mfc 改变对话框背景颜色
- mfc中 控件 对话框 添加颜色 背景图片
- 关于MFC中修改控件字体和背景颜色的方法
- Android在监听器中使用代码改变其他控件背景或颜色
- MFC更改控件字体颜色背景等