龙盟编程论坛 | 龙盟编程博客 | 无障碍搜索 | 云盘搜索神器
快速搜索
主页 > 软件开发 > VC开发 >

VC中通过程序向RichEditView写文本

时间:2009-12-30 15:42来源:未知 作者:admin 点击:
分享到:
在建立SDI或MDI程序时,如果选择了RichEditView,就可以利用RichEdit提供的丰富的格式,但是如何通过程序在RichEditView中写入文本却是一个问题,下文就介绍了如何实现用程序在RichEditView中写文本

  在建立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);
}

精彩图集

赞助商链接