移动光标位置,响应退格和回车按钮

//移动插入符,鼠标按下
void CView::OnLButtonDown(UINT nFlags,CPoint point)
{
 SetCaretPos(point);//设置位置
 m_strLine.empty();
 m_ptOrigin =point;
}

 

 

//响应OnChar消息,退格和回车和其它按键

void CView::OnChar(UINT nChar,...)
{
 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.TextOutW(m_ptOrigin.x, m_ptOrigin.y, m_strLine);
  m_strLine = m_strLine.Left(m_strLine.GetLength()-1);
  dc.SetTextColor(clr);
 }


 else                                    //字符
 {
  m_strLine += nChar;
 }


 CSize sz = dc.GetTextExtent(m_strLine);
 CPoint pt;
 pt.x = m_ptOrigin.x+sz.cx;
 pt.y = m_ptOrigin.y;

 SetCaretPos(pt);
 dc.TextOut(m_ptOrigin.x, m_ptOrigin.y, m_strLine);

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值