{
HBRUSH hbr = CEdit::OnCtlColor(pDC, pWnd, nCtlColor);
CWnd * pFocusWnd = GetFocus();
if(pFocusWnd && pFocusWnd->GetSafeHwnd() == m_hWnd)
{
pDC->SetTextColor(RGB(0,255,0));
return m_brush;
}
return hbr;
}
m_brush在构函数中初始化为
m_brush.CreateSolidBrush(RGB(0,0,255));
当失去焦点时,怎么把EDIT文本框的背景色改为RGB(255,255,255)?
还有,当我的文本框得到焦点时,为什么只有所输入的文字大小的那一行是新设的背景色?比如说文本框的高是100文字的高是50的话,只有文字的那50是新设的背景色
而其它还是原来的色?不知这种情况怎么改?(要文本框的所有色都是新设的)
请帮忙!
7 个解决方案
#1
你响应WM_SETFOCUS和WM_KILLFOCUS,并在其中加代码.CMyEdit::OnCtlColor()好像是在绘画子之窗口时调用,比如DIALOG要画BUTTON时。
#2
你的问题前面已经有人回答过了亚,怎么会没人看那?
#3
可是我不知道具体怎么做?
#4
或者试试在WM_KILLFOCUS里
m_brush.CreateSolidBrush(RGB(255,255,255));
this->Invalidate()
m_brush.CreateSolidBrush(RGB(255,255,255));
this->Invalidate()
#5
我试过了,这样做不行的!
还有人帮我吗?我一定给分的!
还有人帮我吗?我一定给分的!
#6
我试过了,这样做不行的!
还有人帮我吗?我一定给分的!
还有人帮我吗?我一定给分的!
#7
????
#1
你响应WM_SETFOCUS和WM_KILLFOCUS,并在其中加代码.CMyEdit::OnCtlColor()好像是在绘画子之窗口时调用,比如DIALOG要画BUTTON时。
#2
你的问题前面已经有人回答过了亚,怎么会没人看那?
#3
可是我不知道具体怎么做?
#4
或者试试在WM_KILLFOCUS里
m_brush.CreateSolidBrush(RGB(255,255,255));
this->Invalidate()
m_brush.CreateSolidBrush(RGB(255,255,255));
this->Invalidate()
#5
我试过了,这样做不行的!
还有人帮我吗?我一定给分的!
还有人帮我吗?我一定给分的!
#6
我试过了,这样做不行的!
还有人帮我吗?我一定给分的!
还有人帮我吗?我一定给分的!
#7
????