Jul 19, 2008

MFC下文本框的使用(出现字符重叠现象的解决方案)

上次做了一个模拟股票软件的K线图界面
在右下角留了个公告栏
由于是画线图的界面
背景颜色最好是黑色的,线框是红色的,线是黄色的
这样看起来眼睛不会太累
画图的那个算法就先不提了,再做公告栏时就碰到问题

我将公告栏的位置固定在右下角
然后把背景色设置成透明
既捕获WM_CTLCOLOR消息然后把CEdit类的我所要放公告的类给SetBkMode(Transparent);
然后把字体设置成红色,勾起Auto VScroll(不让它出现讨厌的滚条)

OK,调试的时候发现了一个问题
用一个Timer去发同一条公告时,没超出文本框的范围还好
纵向超出文本框范围时,最底下一行居然出现了字符重叠现象
真是活见鬼啊
检查了一下我的代码没有问题
而且如果不auto滚动的话就没有问题
还真是···

上网搜索了一阵子
有几个人也碰到这样的问题,下边也跟了很多帖
仔细看了他们的解答,有个人是这么说的,不能把SetBkMode()里的参数设置成Transparent
就是这个问题
开始我还有点不信呢,可是看了那么多答案,还是这个最简便
可这问题也太··
到我的程序下一试
还真的是耶····

可这到底是什么原因呢?
我最后把这个Transparent改成了RGB表示的背景色
行了。
还是很奇怪,希望以后能够明白
就先把解决方案写下,问题留着,以后也许会有答案
积累积累···

No comments:

Powered By Blogger