主题:CEdit 控件闪烁的问题
ynwszk
[专家分:200] 发布于 2009-07-02 09:59:00
我从CEdit派生了一个类,将其扩展样式设置为WS_EX_TRANSPARENT,在WM_EREASEBKGUN消息里重画了背景,现在的问题是在Edit里敲字符或者鼠标选取文字时,闪烁很厉害。有什么办法吗?我实在想不出什么办法,搞不请EDIT内部是怎么实现的。
回复列表 (共2个回复)
沙发
mw3943 [专家分:20] 发布于 2009-07-04 13:35:00
不知道呢~我也是刚学c++的---有没高手指点下
板凳
tunsanty [专家分:0] 发布于 2009-07-07 15:03:00
不知道你想干什么, 如果只是更改你的Edit控件的背景颜色,应该在你派生的Edit类里添加 WM_CTLCOLOR 消息, 其消息函数内容可以这么写:
COLORREF cr1(RGB(255,0,0)); // 文本颜色
COLORREF cr2(RGB(0,255,0)); // 背景颜色
pDC->SetTextColor(cr1); //设置文本颜色
pDC->SetBkColor(cr2); //设置文本的背景颜色(即文本高度覆盖的区域)
HBRUSH brush = CreateSolidBrush(cr2); //编辑框的背景颜色(文本高度未覆盖的区域)
return brush;
我来回复