字符输入及error C2593: “operator +=”不明确“问题解决

在CTextView类的OnChar方法中,处理字符输入时遇到了编译错误C2593。错误发生在尝试使用'operator +=' 连接m_strLine字符串与UINT类型的nChar时。通过将nChar转换为CString类型,然后进行连接,成功解决了这个问题。代码中详细展示了如何处理回车、退格和普通字符的输入,并更新了光标位置。
摘要由CSDN通过智能技术生成

 

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 = m_ptOrigin.y +tm.tmHeight;

SetCaretPos(m_ptOrigin);

 

}

else if(0x08 == nChar)

{

COLORREF color = dc.SetTextColor(dc.GetBkColor());

dc.TextOutW(m_ptOrigin.x, m_ptOrigin.y, m_strLine);

m_strLine = m_strLine.Left(m_strLine.GetLength() - 1);

dc.SetTextColor(color);

}

else

{

//m_strLine+=nChar产生error C2593: “operator +=因为操作符重载时未定义UINT型

CString cs;

cs.Format(_T("%c"),nChar);

m_strLine += cs;

}

dc.TextOutW(m_ptOrigin.x, m_ptOrigin.y, m_strLine);

 

 

CView::OnChar(nChar, nRepCnt, nFlags);

}

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值