Chinaunix首页 | 论坛 | 博客
  • 博客访问: 578431
  • 博文数量: 752
  • 博客积分: 40000
  • 博客等级: 大将
  • 技术积分: 5005
  • 用 户 组: 普通用户
  • 注册时间: 2008-10-13 14:47
文章分类

全部博文(752)

文章存档

2011年(1)

2008年(751)

我的朋友

分类:

2008-10-13 16:47:14

通过程序向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 += "\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);
}

--------------------next---------------------

怎么写第二行?我用ReplaceSel怎么每次都在第一行,第一行以后的数据怎么添加? ( phy0292 发表于 2006-5-5 9:19:00)
 
可以写,但是你用TXT保存后,再打开看一下,就不是汉字了 ( tfq2002 发表于 2005-9-21 17:09:00)
 
可以写汉字呀,我用在Cricheditctrl中。 ( panto 发表于 2005-8-16 22:32:00)
 
请问如何在用户输入文本是控制他的内容?
有哪个消息函数呢?
请老大指教 ( zhao9 发表于 2003-1-20 13:06:00)
 
请问如何在用户输入文本是控制他的内容?
有哪个消息函数呢?
请老大指教 ( zhao9 发表于 2003-1-20 13:05:00)
 
这个程序不能用来写汉字,只能写英语??请问应怎么办,才能用程序往文档里面汉语?? ( yiwan_ny 发表于 2002-12-23 14:52:00)
 
.......................................................

--------------------next---------------------

阅读(199) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~