看了孙鑫的vc++
一个关于退格键的编程的问题现在要操作的只是对一行文本进行操作。
孙老师讲的方法是,首先对获取背景颜色,然后拿背景颜色去显示这段文本,然后去掉文本的最后一个单词,再用以前文本的颜色去显示这段文本。
程序如下:
COlOREF col=dc.SetTextColor(dc.GetBkColor);
m_strline=m_strline.left(m_strline.getlenth()-1);
dc.Textout(0;0;m_strline);我突然有个想法就是能不能是对窗口重绘,然后去点文本中的最后一个单词,然后显示就行。我的代码写成了 :
Invalidate(true);
m_strline=m_strline.left(m_strline.getlenth()-1);
dc.Textout(0;0;m_strline);
Invalidate(true),我觉得因为我只是有一行文本,应该能把之前那些文本覆盖掉,能达到孙老师讲的那个效果。但是我实验了下,没法实现。
想问问不知道是什么原因。