如何获得RichEdit中文字的字节数?

yf2100 2008-09-17 12:05:23
设置了最大长度,却发现有中文时一个中文字只算1,但我希望能限制RichEdit中文字的实际占用字节数,我现在是在KeyPress中进行实时过滤,还有其它更简单的方法吗?
...全文
145 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
justdone32 2011-06-10
  • 打赏
  • 举报
回复
如果richEdit中存在图片,应该怎么计算大小
yf2100 2008-09-27
  • 打赏
  • 举报
回复
呵呵,ls的几个兄弟说得都对啊,我也是自己写代码判断的,可是我还是希望能直接通过属性设置来实现
yumikoo 2008-09-27
  • 打赏
  • 举报
回复
richedit就那么几个属性,你可以看看撒
好像木有哦。
只有自己设计算法呢。
yumikoo 2008-09-17
  • 打赏
  • 举报
回复

int t=redt_TxtEdit->Text.ByteType(i);//为richedit中第几个字符
if(t==mbSingleByte) ///单字节
{
长度为1
}
else //双字节
{
长度为2
}

Waiting4you 2008-09-17
  • 打赏
  • 举报
回复
不知道RichEdit1->Lines->Text.Length()这样的内部操作会不会先取整个内容,然后算长度。我觉得还是用GetWindowTextLengthA(RichEdit1->Handle)来获得字节数比较好。
loveshell 2008-09-17
  • 打赏
  • 举报
回复
如果目的是限制长度的话,我觉得就在KeyPress里面判断RichEdit1->Lines->Text.Length()是不是达到最大比较方便。
if(RichEdit1->Lines->Text.Length()==MaxLength&&Key!=VK_BACK)
Key=NULL;
柯本 2008-09-17
  • 打赏
  • 举报
回复
实际字符数:
strlen(RichEdit1->Lines->Text.c_str())
它的最大长度是按unicode算的

queshiybb 2008-09-17
  • 打赏
  • 举报
回复
mark
jxw1987628 2008-09-17
  • 打赏
  • 举报
回复
按照1楼的办法,扫描整个文本,汉字为2个字节,你自己写代码计算下,应该可以了吧
御剑逍遥恪 2008-09-17
  • 打赏
  • 举报
回复
只知道最大长度限制:
RichEdit->MaxLength=....

和获取它的一行:
lines->BeginUpdate();
RichEdit1->Lines->Strings[i];
lines->EndUpdate;

学习关注中啊~~

604

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder VCL组件使用和开发
社区管理员
  • VCL组件使用和开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧