WEB开发网
开发学院软件开发VC 通过程序向RichEditView写文本 阅读

通过程序向RichEditView写文本

 2006-07-23 11:24:55 来源:WEB开发网   
核心提示:本文示例源代码或素材下载 在建立SDI或MDI程序时,如果选择了RichEditView,就可以利用RichEdit提供的丰富的格式,但是如何通过程序在RichEditView中写入文本却是一个问题,下文就介绍了如何实现用程序在RichEditView中写文本.一、在文本末尾写文字void CRichEditU

本文示例源代码或素材下载

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

一、在文本末尾写文字

void CRichEditUseDoc::OnTextWriteafter()
{
  CString str;
  int nTextLength;
  CRichEditView *pView = GetView();
  CRichEditCtrl &edit = pView->GetRichEditCtrl();
  
  //要写的内容为ABCDEFG
  str = "ABCDEFG";
  //加入换行
  str += "\r\n";
  //获得文字的长度
  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);
}

Tags:通过 程序 RichEditView

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接