if (0x08==nChar)
{
COLORREF clr=dc.SetTextColor(dc.GetBkColor());
dc.TextOut(m_pOld.x,m_pOld.y,srz);
srz=srz.Left(srz.GetLength()-1);
dc.SetTextColor(clr);
}
dc.TextOut(m_pOld.x,m_pOld.y,srz);如上代码,退格删除字符的功能我已经实现。我困惑在于
一、COLORREF clr=dc.SetTextColor(dc.GetBkColor());  这一句的clr的颜色是多少?是背景色吗?
二、dc.SetTextColor(clr); 这一句又问什么是把字符设置为了原来的颜色?请指教

解决方案 »

  1.   

    Return Value
    An RGB value for the previous text color.
    退格的时候,先把字体颜色设置为背景色,并保存原来的颜色,
    完成后,再设置回来
    应该是为了避免闪烁
      

  2.   

    啊 我的问题就在于这个设置回来,dc.SetTextColor(clr); 为什么会是这个语句呢?clr存储的是“原来的字体颜色”吗?
      

  3.   

    COLORREF clr=dc.SetTextColor(dc.GetBkColor());
    设置文字颜色为背景色,返回文字原来的颜色到clrdc.SetTextColor(clr);设置文字颜色为原来的颜色