MFC 改变Eidt背景颜色【自定义类】
2012-02-16 11:27
453 查看
新建一个MFC工程并添加一个新类,这里我的叫做CColorEdit父类是CEdit,
在新类中重写=WM_CTLCOLOR事件,注意是=,不是WM_CTLCOLOR,在函数中添加代码
[cpp]
view plaincopyprint?
HBRUSH CColorEdit::CtlColor(CDC* pDC, UINT nCtlColor)
{
if(nCtlColor == CTLCOLOR_EDIT){
pDC-> SetBkColor(m_BackColor); //文字背景颜色
return (HBRUSH)m_Brush.GetSafeHandle() ;
}
return NULL;
}
[cpp] view plaincopyprint? void CColorEdit::SetBkColor(COLORREF bkColor) { m_BackColor = bkColor; m_Brush.DeleteObject(); m_Brush.CreateSolidBrush(m_BackColor); Invalidate(TRUE); } void CColorEdit::SetBkColor(COLORREF bkColor) { m_BackColor = bkColor; m_Brush.DeleteObject(); m_Brush.CreateSolidBrush(m_BackColor); Invalidate(TRUE); }
这里m_BackColor,m_Brush均是CColorEdit中的保护全局变量
这样就可以啦。看一效果
[cpp]
view plaincopyprint?
void CColorEditDomeDlg::OnBnClickedOk()
{
// TODO: 在此添加控件通知处理程序代码
//OnOK();
wchar_t szEdit[250];
GetDlgItemText(IDC_EDIT1,szEdit,250);
AfxMessageBox(szEdit);
if (wcscmp(szEdit,_T("Sollyu")) != 0)
m_edit.SetBkColor(RGB(255,0,0));
else
m_edit.SetBkColor(RGB(0,255,0));
}
void CColorEditDomeDlg::OnBnClickedOk()
{
// TODO: 在此添加控件通知处理程序代码
//OnOK();
wchar_t szEdit[250];
GetDlgItemText(IDC_EDIT1,szEdit,250);
AfxMessageBox(szEdit);
if (wcscmp(szEdit,_T("Sollyu")) != 0)
m_edit.SetBkColor(RGB(255,0,0));
else
m_edit.SetBkColor(RGB(0,255,0));
}
/article/2086397.html
相关文章推荐
- MFC 改变Eidt背景颜色【自定义类】
- MFC 改变static字体颜色、大小、背景颜色【自定义类】
- MFC开发IM-第五篇、MFC中改变static字体颜色、大小、背景颜色(自定义类),及手动关联变量的方法
- MFC 改变static字体颜色、大小、背景颜色【自定义类】
- VS2010 MFC中改变static字体颜色、大小、背景颜色(自定义类),及手动关联变量的方法
- MFC 改变static字体颜色、大小、背景颜色【自定义类】
- MFC编辑框改变背景、颜色
- MFC编辑框改变背景、颜色等
- MFC 如何改变对话框的默认背景颜色
- mfc 改变对话框背景颜色
- MFC编辑框改变背景、颜色
- MFC 如何改变对话框的默认背景颜色
- MFC 如何改变对话框的默认背景颜色
- MFC中改变控件的背景颜色
- MFC在鼠标自定义的一定的范围内实现拖动窗口移动、错误:不支持尝试执行的操作、实现进度条颜色的渐变或者背景和前景色的改变
- MFC RadioButton背景颜色改变(可以照此实现别的效果)
- MFC编辑框改变背景、颜色等
- MFC改变对话框背景颜色
- MFC窗体上的STATIC控件鼠标移上去改变文本和背景颜色,鼠标离开恢复正常
- 关于MFC下改变buntton按下、弹起时按钮的背景颜色的问题