救命呀!!我的问题没人看?急死人了?

时间:2022-04-09 08:18:28
HBRUSH CMyEdit::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor)
{
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()

#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()

#5


我试过了,这样做不行的!
还有人帮我吗?我一定给分的!

#6


我试过了,这样做不行的!
还有人帮我吗?我一定给分的!

#7


????