error C2593: “operator +=”不明确
2010-03-18 17:40 Phoenix'K 阅读(1895) 评论(0) 收藏 举报void CTextView::OnChar(UINT nChar, UINT nRepCnt, UINT nFlags)
{
// TODO: 在此添加消息处理程序代码和/或调用默认值
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);
m_strLine = m_strLine.Left(m_strLine.GetLength() - 1);
dc.SetTextColor(clr);
}
else
{
m_strLine += nChar;
}
dc.TextOut(m_ptOrigin.x,m_ptOrigin.y,m_strLine);
CView::OnChar(nChar, nRepCnt, nFlags);
}
编译时出现“operator +=”不明确,也就是m_strLine += nchar
改正方法:
m_strLine += (char)nchar,因为在代码中有个CString的类型,所以如果支持了这个类型的话,从unsigned int转换到CString和char的等级都是标准转换,所以编译器无法判断到底应该转换到哪一个,故而导致了这个问题。
故应该进行强制转换!
浙公网安备 33010602011771号