往它里面加入字符串的办法是什么?这个类 里有没有这个方法可以实现?谢谢

解决方案 »

  1.   

    用SetWindowText;
    如果想控制插入位置,用GetEditCtrl()得到CEdit变量,再用CEdit的方法
      

  2.   

    本来有些字符串,但要往它里面加新的
    SetWindowText很慢,我的程序是实现自动更新CEditView如果行数多了的话,再加上滚动条滚动,它就会闪个不停,这怎么解决?
      

  3.   

    首先要明白在编辑控件中有插入点的概念。插入点就是当前你输入新的字符的位置,也是粘贴的位置。插入点可以小到一个字符(甚至不到一个字符,只有一个插字符caret),也可以大到选择区是整个文档的情况。一般是先选择一段文本(也可以不选任何文本),以这段文本为插入点,此时就可以插入你的任何字符串。下面是例子:
    void CXXXXXXXX::AddLine(LPCTSTR lpsz)
    {
    TCHAR   szt[50];
    int     nLastChar;
    int     cLines; if (GetLineCount() >= m_totalLines)
    {
    SetSel(0, LineLength(0), TRUE/*bNoScroll*/);  // select the first line
    Clear();  // and remove it
    } nLastChar = LineIndex((cLines = GetLineCount() - 1)) + LineLength(cLines);
    _stprintf(szt, _T("%s\x0D\x0A"), lpsz);//插入回车换行符
    SetSel(nLastChar, nLastChar, TRUE/*bNoScroll*/);
    ReplaceSel(szt);
    }这是从msdn sample中选取的例子。从中可以看到,它用SetSel选中一段插入点,然后用ReplaceSel来替换。
    作为特例,可以选择插入点仅为一个脱字符的情况,即上述倒数第二句,此时ReplaceSel就成了完全的插入。上例中的定位比较简单,你还可以参考msdn查一直如何自如地定位到文档中的每一行、每一个字。