error C2593: “operator +=”不明确
view sourceprint?01 void CTextView::OnChar(UINT nChar, UINT nRepCnt, UINT nFlags)
02 {
03 // TODO: 在此添加消息处理程序代码和/或调用默认值
04 CClientDC dc(this);
05 TEXTMETRIC tm;
06 dc.GetTextMetrics(&tm);
07 if(0x0d == nChar)
08 {
09 m_strLine.Empty();
10 m_ptOrigin.y += tm.tmHeight;
11 }
12 else if (0x08 == nChar)
13 {
14 COLORREF clr = dc.SetTextColor(dc.GetBkColor());
15 dc.TextOut(m_ptOrigin.x,m_ptOrigin.y,m_strLine);
16 m_strLine = m_strLine.Left(m_strLine.GetLength() - 1);
17 dc.SetTextColor(clr);
18 }
19 else
20 {
21 m_strLine += nChar;
22 }
23
24 dc.TextOut(m_ptOrigin.x,m_ptOrigin.y,m_strLine);
25
26 CView::OnChar(nChar, nRepCnt, nFlags);
27 }
编译时出现“operator +=”不明确,也就是m_strLine += nchar
大家帮忙分析一下是什么原因?我用的是vs2005。谢谢喽!!
[解决办法]
m_strLine += (BYTE)nchar;
[解决办法]
UINT类型的nchar直接加入到cstring类型中自然会有提示的,最好用FORMAT转换下格式比较好
[解决办法]
CString tS;
tS.format("%c",nchar);
m_strLine += tS;
[解决办法]
m_strLine += nChar; nChar是UINT类型。转换方法如5楼,但是不知你这样做的目的是什么。
[解决办法]
- C/C++ code
CString strTemp;strTemp.Format("%d", nChar);m_strLine += strTemp;
[解决办法]
方法如5、7楼提供的那样
[解决办法]