???
求助!

解决方案 »

  1.   

    这是设置CEdit的,或许有用
    方法1
    功能:设置多行编辑框的第N行文本,不足N行的自动追加空行至N行
    参数:text 要设置的新串
          nRow 要设置的行,自0开始。
    void CMyEdit;:SetTextN(CString &text, int nRow)
    {
       CString str;
       CString before, after;
       int row;
       const char *find;
       GetWindowText(str);//取edit所有文本
       find=str;
       for(row=0; row<nRow; row++)//查找第nRow行位置
       {
         find=strchr(find, '\n');
         if(find==NULL)
           break;
         find++;
       }
       if(find!=NULL)//找到,则替换该行
       {
          before=str.Left(find-(LPTCSTR)str);
          find=strchr(find, '\n');
          if(find)
            after=str.Right(str.Leght()-(find-(LPTCSTR)str))
          str=before+text+after;
       }
       else  //追加空行,和新行内容
       {
         while(row<nRow)
         {
           str+='\n';
           row++;
         }
         str+=text;
       }
       //设置edit文本
       SetWindowText(str);
    }    方法2:
    用CListBox替换CEdit
    可以直接替换相应行,但编辑时要做另外处理,比较复杂,可找到例子。
    如VC IDE中的菜单Tools-->Options...中的Directories页面
      

  2.   

    如果RichEdit中有巨量字符串的话
    老使用setwindowtext行吗?
    能否只删除中间的一段?
      

  3.   

    首先调用 CRichEditCtrl::SetSel() 设置选定你要删除的行
    然后调用 CRichEditCtrl::ReplaceSel(_T("")) 用空串把它替换掉
    OK