Welcome

首页 / 软件开发 / C++ / VC中通过程序向RichEditView写文本

VC中通过程序向RichEditView写文本2007-10-07陈新之在建立SDI或MDI时,如果选择了RichEditView,就可以利用RichEdit提供的丰富的格式,但是如何通过程序在RichEditView中写入文本却是一个问题,下文就介绍了如何实现用程序在RichEditView中写文本.

一、在文本末尾写文字

void CRichEditUseDoc::OnTextWriteafter()
{
CString str;
int nTextLength;
CRichEditView *pView = GetView();
CRichEditCtrl &edit = pView->GetRichEditCtrl();

//要写的内容为ABCDEFG
str = "ABCDEFG";
//加入换行
str += " ";
//获得文字的长度
nTextLength = edit.GetWindowTextLength();
//将光标放在文本最末
edit.SetSel(nTextLength, nTextLength);
//写入文本
edit.ReplaceSel(str);
}

二、在光标后插入文本,可以使用CHARRANGE结构

void CRichEditUseDoc::OnTextWriteCur()
{
CString str;

CHARRANGE crPos;
CRichEditView *pView = GetView();
CRichEditCtrl &edit = pView->GetRichEditCtrl();

//用CHARRANGE结构体获得选择的文本位置
edit.GetSel(crPos);
//要写的内容为12345
str = "12345";
//如果没有选中文本,就直接写在光标后
//如果选中了文本,就替代选中的文本
if (crPos.cpMin != crPos.cpMax)
{
edit.SetSel(crPos.cpMin, crPos.cpMax);
}
else
{
edit.SetSel(crPos.cpMax, crPos.cpMax);
}

edit.ReplaceSel(str);
}

三、全选文本

void CRichEditUseDoc::OnTextSelectall()
{
CRichEditView *pView = GetView();
CRichEditCtrl &edit = pView->GetRichEditCtrl();
edit.SetSel(0, -1);
}