在使用RichEditView时,发现中文占一个文字选择位,就是使用 GetSe 与SetSel函数时。而使用早期的Rich Edit 1.0版本就没有这个问题,中文当两个选择位。
这样主要的问题是,如果我想改变我选择中的一段文字中的一个词的颜色字体等格式,类似关键字显示一槎,这一串数据中有中文也有英文,一般的处理是先得到选择的文字,对文字进行判断。
pCtrl->SetSel(nStartChar, nEndChar);
CString str = pCtrl->GetSelText();但问题出来了,如果用
char c = str.GetAt(index);
int iLen = str.GetLength();
for (int i=0; i++; i<iLen)
{
//查找处理。这里的 i 是文字在选择字串的的相对位置,但如果有中文的话,
//这个位置相对就会出错,主要是这里中文是两个位置,但在Rich Edit用SetSel
//中文只占一个选择位。
}
?
1、如何正确处理? 难道自己一定要判断 char c 是否是一个中文的办法处理吗?
这样主要的问题是,如果我想改变我选择中的一段文字中的一个词的颜色字体等格式,类似关键字显示一槎,这一串数据中有中文也有英文,一般的处理是先得到选择的文字,对文字进行判断。
pCtrl->SetSel(nStartChar, nEndChar);
CString str = pCtrl->GetSelText();但问题出来了,如果用
char c = str.GetAt(index);
int iLen = str.GetLength();
for (int i=0; i++; i<iLen)
{
//查找处理。这里的 i 是文字在选择字串的的相对位置,但如果有中文的话,
//这个位置相对就会出错,主要是这里中文是两个位置,但在Rich Edit用SetSel
//中文只占一个选择位。
}
?
1、如何正确处理? 难道自己一定要判断 char c 是否是一个中文的办法处理吗?
解决方案 »
- CRgn::CreatePolyPolygonRgn,怎么都参数错误??getlasterror=87
- 响应CONTEXT_MENU和响应ON_RBUTTONDOWN消息,这两个概念之间到底有什么联系?
- 如何用vc++从ftp上搜索到符合条件的文件并下载?
- 求图象检索有关算法(要源代码)!在线等,解决后马上给分!
- 如何检测一段时间没有消息的到来
- 如何让按钮控件变灰,暂时不可使用?如何让界面的聚焦在按钮控件上,SetFocus()好像不起作用?
- 请问图像按钮(CBitmapButton),怎样让鼠标移上去时换另幅图像?
- Installshield如何安装字体?
- listbox如何返回我选中的内容
- CEdit无法获得焦点,输入文字问题。
- 安装程序,运行就读取setup.ini文件。恳求各位帮忙!
- 一个小问题,知道的人可以很快解决
使用CString的成员函数就可以处理了啊。
我觉得,在RichEdit用SetSel,中文应该占两个选择位。我是过了,如果RichEdit内的内容是:Test测试
用SetSel(3,5),按楼主的意思,应该选中:t测试
而我的测试结果告诉我,选中的部分是:t测
如果RichEdit内的内容是:Test测试
则测试结果如下:
SetSel(1,2) - e
SetSel(1,3) - es
SetSel(1,4) - est
SetSel(1,5) - est测
SetSel(1,6) - est测
SetSel(1,7) - est测试
SetSel(1,8) - est测试
如果要看出具体的效果,
SetSel(1,6) - est测试其实为看出效果,可以字符长一些,如:这是一人测试123456789这是一个测试
就主要是我要找关键字,找到后变它的颜色,位置很重要。一楼说的方法感觉不行。
http://www.codeproject.com/richedit/rulerricheditctrl.asp