编辑控件里面有多行文本,
鼠标单击的时候,光标就转到鼠标单击的位置处了,
如果我想让光标始终在最后一个字符后面,但是不能够影响鼠标的动作,
可以实现吗?因为我编辑控件不停得显示其他程序发来的文本,
在这个过程中,如果我用鼠标在已有的文本上操作,比如我需要复制一行,这个时候接收到的数据就写在当前鼠标位置的后面了
我需要显示在编辑控件中最后一个字符的后面不能够屏蔽鼠标操作可以实现吗

解决方案 »

  1.   

    用SetCaretPos控制光标的位置。不过不屏蔽鼠标操作这个要求不是很明白……
      

  2.   

    CString strText;
    m_edit.GetWindowText(strText);
    m_edit.SetSel(strText.GetLength(),strText.GetLength());
      

  3.   

    如果我想让光标始终在最后一个字符后面,但是不能够影响鼠标的动作。
    /////////////////////////////////////////////////我觉得你可以这样模拟,在要拷贝东西(strAdd)进去的时候,就调用
    CString strText;
    m_edit.GetWindowText(strText);
    m_edit.SetSel(strText.GetLength(),strText.GetLength());
    m_ctrlMyEd.ReplaceSel( strAdd, FALSE );
    如果没有要拷贝的时候,就随鼠标自己进行操作
      

  4.   

    如果不需要对WindowText进行操作,没必要浪费内存和速度,呵呵
    int len = m_edit.GetWindowTextLength();
    m_edit.SetSel(len ,len );
      

  5.   

    明白楼主的意思了,那么SetSel不行的,它相当于又一次的鼠标操作。用SetCaretPos吧
      

  6.   

    多谢各位!!to
     handwolf(青松崖) 就是你说的方法,解决了这个问题,我先前用的都是SetSel(-1,-1),
    鼠标一改变光标就让显示错位,改用你的后,问题解决!