CEdit的子类后,输入文字重叠的有关问题
CEdit的子类后,输入文字重叠的问题为了方便修改CEdit的文字及背景色,写了子类CColorEdit.重载了CtlColorC/
CEdit的子类后,输入文字重叠的问题
为了方便修改CEdit的文字及背景色,写了子类CColorEdit.
重载了CtlColor
C/C++ codeHBRUSH 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)。