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

VC中通过程序向RichEditView写文本

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

在建立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:VC 通过 程序

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