MFC中richedit控件设置为透明后出现文字残留现象
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MFC中richedit控件设置为透明后出现文字残留现象相关的知识,希望对你有一定的参考价值。
向下滑动后
请问这样的问题如何解决啊?
看到你的截图,感觉象是richedit本身出错了。你要保证你的操作系统的richedit的补丁安装好了。以前有些操作系统的richedit的dll有一些BUG。
另外透明度的绘制通常包括这几步:
1.背景图绘制
2.前景图按一个算法,通常是做平均,迭加。不过richedit有可能是直接drawtext到canvas(dc)上的。这时你的笔的颜色,背景的颜色,好象有些绘制里还会有一个mask设置。
3.将合成后的图从后台缓存DC里绘制到前台控件上
4.处理滚动
滚动通常是快速完成,不会再重新1,2,3。 往往是从后台DC里做一次移位就绘制出来。
如果透明这个算法是显卡处理的。有硬件加速,那么透明应该是在从后台DC会绘制出来计算的。
所以你还要检查一下你的显卡的设置,把有些选项关闭,尽量用软件加速。关闭硬件加速看看。 参考技术A 将richedit重画
mfc怎么修改静态文本控件文字颜色
参考技术A 在生成的类中添加重载的虚函数OnCtlColor(CDC*pDC,CWnd
*pWnd,UINT
nCtlColor)。
可以在该函数中设置pDC->SetBkMode(TRANSPARENT);将文本的背景设置为透明。
可以在该函数中设置pDC->SetTextColor(RGB(255,0,0));将文本的颜色设置为红色。
也可以指定某一静态文本的字体颜色,可以加如下判断:
switch(pWnd->GetDlgCtrlID())
case
IDC_INFO:
pDC->SetBkMode(TRANSPARENT);
pDC->SetTextColor(RGB(255,0,0));
这个判断,可以仅仅将ID号为IDC_INFO的静态文本的字体颜色设置为红色。
以上是关于MFC中richedit控件设置为透明后出现文字残留现象的主要内容,如果未能解决你的问题,请参考以下文章