请教如何删除CRichEditCtrl中指定的某一行?
???
求助!
问题点数:100、回复次数:4Top
1 楼JennyVenus()回复于 2002-12-03 17:42:49 得分 30
这是设置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页面
Top
2 楼tshadowy(tshadowy)回复于 2002-12-04 10:44:10 得分 0
如果RichEdit中有巨量字符串的话
老使用setwindowtext行吗?
能否只删除中间的一段?Top
3 楼jerrytse(聪明笨伯)回复于 2002-12-04 11:41:34 得分 65
首先调用 CRichEditCtrl::SetSel() 设置选定你要删除的行
然后调用 CRichEditCtrl::ReplaceSel(_T("")) 用空串把它替换掉
OKTop
4 楼zm_speed(★冰☆奋★)回复于 2002-12-04 12:26:46 得分 5
学习Top




