一个关于vc文本编程方面的 问题 5
我是刚接触VC编程。我看的是孙鑫老师的VC视频第5讲。如下程序中的0x08==nChar即为当我们按入backspace键时程序将首先设置字体颜色为背景色。然后输出字体。...
我是刚接触VC编程。我看的是孙鑫老师的VC视频第5讲。如下程序中的0x08==nChar即为当我们按入backspace键时
程序将首先设置字体颜色为背景色。然后输出字体。再将存有字符的字符串strLine中的最后一个字符删去,再设置回背景色。
这里如果将1,2句进行交换,则不能正常运作,恳请高手指点指点啊。
void CTextView::OnChar(UINT nChar, UINT nRepCnt, UINT nFlags)
{
// TODO: Add your message handler code here and/or call default
CClientDC dc(this);
TEXTMETRIC tm;
dc.GetTextMetrics(&tm);
if(0x0d==nChar)
{m_strLine.Empty();
m_ptOrigin.y+=tm.tmHeight;
}
else if(0x08==nChar)
{COLORREF clr=dc.SetTextColor(dc.GetBkColor());
dc.TextOut(m_ptOrigin.x,m_ptOrigin.y,m_strLine);//1
m_strLine=m_strLine.Left(m_strLine.GetLength()-1);//2。。这里如果将1,2句进行交换,则不能正常运作
dc.SetTextColor(clr);
}
else
{m_strLine+=nChar;}
dc.TextOut(m_ptOrigin.x,m_ptOrigin.y,m_strLine);
CView::OnChar(nChar, nRepCnt, nFlags);
} 展开
程序将首先设置字体颜色为背景色。然后输出字体。再将存有字符的字符串strLine中的最后一个字符删去,再设置回背景色。
这里如果将1,2句进行交换,则不能正常运作,恳请高手指点指点啊。
void CTextView::OnChar(UINT nChar, UINT nRepCnt, UINT nFlags)
{
// TODO: Add your message handler code here and/or call default
CClientDC dc(this);
TEXTMETRIC tm;
dc.GetTextMetrics(&tm);
if(0x0d==nChar)
{m_strLine.Empty();
m_ptOrigin.y+=tm.tmHeight;
}
else if(0x08==nChar)
{COLORREF clr=dc.SetTextColor(dc.GetBkColor());
dc.TextOut(m_ptOrigin.x,m_ptOrigin.y,m_strLine);//1
m_strLine=m_strLine.Left(m_strLine.GetLength()-1);//2。。这里如果将1,2句进行交换,则不能正常运作
dc.SetTextColor(clr);
}
else
{m_strLine+=nChar;}
dc.TextOut(m_ptOrigin.x,m_ptOrigin.y,m_strLine);
CView::OnChar(nChar, nRepCnt, nFlags);
} 展开
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询