当前位置: 代码迷 >> VC >> CEdit的子类后,输入文字重叠的有关问题
  详细解决方案

CEdit的子类后,输入文字重叠的有关问题

热度:827   发布时间:2013-02-25 00:00:00.0
CEdit的子类后,输入文字重叠的问题
为了方便修改CEdit的文字及背景色,写了子类CColorEdit.

重载了CtlColor

C/C++ code
HBRUSH CColorEdit::CtlColor(CDC* pDC, UINT nCtlColor){    pDC->SetTextColor(m_TextColor);    pDC->SetBkColor(m_TextBkColor);    return m_BrushBk;}


但是之后发现,输入文字后背景没有刷新,输多了就像重叠在一起一样,一片模糊,请问这个问题应该如何解决,谢谢。

------解决方案--------------------------------------------------------
,是不是要窗体重画啊???
::SetBkMode(WindowDC,TRANSPARENT);
设CEdit的句柄是hwnd
::RedrawWindow(hwnd,NULL,NULL,RDW_INVALIDATE|RDW_ERASE|RDW_ERASENOW); //清空背景 

然后再加载文字,


------解决方案--------------------------------------------------------
加上
CEdit::OnCtlColor(pDC,this,nCtlColor);
------解决方案--------------------------------------------------------
.....onchange 试试,我不能完全保证
------解决方案--------------------------------------------------------
m_BrushBk不要用空画刷,改成m_BrushBk.CreateSolidBrush(m_TextBkColor)。