首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ Builder >

怎么获得RichEdit中文字的字节数

2012-02-20 
如何获得RichEdit中文字的字节数?设置了最大长度,却发现有中文时一个中文字只算1,但我希望能限制RichEdit

如何获得RichEdit中文字的字节数?
设置了最大长度,却发现有中文时一个中文字只算1,但我希望能限制RichEdit中文字的实际占用字节数,我现在是在KeyPress中进行实时过滤,还有其它更简单的方法吗?

[解决办法]

C/C++ code
int t=redt_TxtEdit->Text.ByteType(i);//为richedit中第几个字符if(t==mbSingleByte)   ///单字节{    长度为1}else                //双字节{    长度为2}
[解决办法]
只知道最大长度限制:
RichEdit->MaxLength=....

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

学习关注中啊~~
[解决办法]
按照1楼的办法,扫描整个文本,汉字为2个字节,你自己写代码计算下,应该可以了吧
[解决办法]
实际字符数:
strlen(RichEdit1->Lines->Text.c_str())
它的最大长度是按unicode算的


[解决办法]
如果目的是限制长度的话,我觉得就在KeyPress里面判断RichEdit1->Lines->Text.Length()是不是达到最大比较方便。
if(RichEdit1->Lines->Text.Length()==MaxLength&&Key!=VK_BACK)
 Key=NULL;

[解决办法]
不知道RichEdit1->Lines->Text.Length()这样的内部操作会不会先取整个内容,然后算长度。我觉得还是用GetWindowTextLengthA(RichEdit1->Handle)来获得字节数比较好。

热点排行