如何获得RichEdit中文字的字节数?
设置了最大长度,却发现有中文时一个中文字只算1,但我希望能限制RichEdit中文字的实际占用字节数,我现在是在KeyPress中进行实时过滤,还有其它更简单的方法吗?
[解决办法]
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)来获得字节数比较好。