通过程序向RichEditView写文本
作者:陈新之
在建立SDI或MDI程序时,如果选择了RichEditView,就可以利用RichEdit提供的丰富的格式,但是如何通过程序在RichEditView中写入文本却是一个问题,下文就介绍了如何实现用程序在RichEditView中写文本.
一、在文本末尾写文字
void CRichEditUseDoc::OnTextWriteafter() {CString str;int nTextLength;CRichEditView *pView = GetView();CRichEditCtrl &edit = pView->GetRichEditCtrl();//要写的内容为ABCDEFGstr = "ABCDEFG";//加入换行str += "rn";//获得文字的长度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);//要写的内容为12345str = "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);}