MFC文本编辑框背景设置透明,却变成了黑色背景,有没有MFC高手知道怎么破?

做了一个MFC的Demo,目标是实现静态文本和编辑框的背景透明,思路是自定义继承自CStatic和CEdit的类,并重写其CtlColor函数来控制它的背景色,关键代码如下:
HBRUSH CEditTrans::CtlColor(CDC* pDC, UINT nCtlColor)
{
m_Brush.CreateStockObject(HOLLOW_BRUSH);
pDC->SetBkMode(TRANSPARENT);

return (HBRUSH)m_Brush;

}
结果发现同样用这种方法,静态文本的背景能实现透明,编辑框背景仍然是白色,鼠标移动到编辑框上面,编辑框变成了黑色。效果图如下:
静态文本:
图片说明
编辑框:
图片说明
鼠标悬停后:
图片说明
有没有MFC老司机知道这个怎么解决?

看看这个帖子,应该能帮到你

http://bbs.csdn.net/topics/390401008?page=1

编辑框是透明了,但是因为编辑框后面是对话框,而对话框虽然是白色的,但是对话框刷新背景时只刷新没有编辑框的部分,所以编辑框覆盖的那块对话框没有刷新,当然是黑色的。
这说明你编辑框的确有透明掉,但你刷新背景时应该整个对话框都刷新

只是把背景设为透明是不行的。参考:http://blog.csdn.net/wwkaven/article/details/40613821