读书人

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

发布时间: 2012-03-18 13:55:38 作者: rapoo

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)。

读书人网 >VC

热点推荐