posts - 1,  comments - 0,  trackbacks - 0
急问:我用CEdit的LimitText()来限制用户输入的长度,比如LimitText(10),我期望用户只能输入十个字节,如果是英文就是10个字母,中文就是5个汉字;但是我发现当用户输入中文时,仍然可以输入十个汉字,也就是20个字节了,请问有什么办法可以无论用户输入的是什么字符,都限制用户输入的字节数吗?

你自己在EN_CHANGE消息中判断吧,用strlen判断的是字节数。

需要使用MBCS字符集   ATL+F7   ->   C/C++   -> 去掉_UNICODE、UNICODE並增加_MBCS

看错了   原来你用的是LimitText   我看成SetLimitText了
这两个函数有区别:前者限制字符数后者才是限制字节数
要达到你的要求可以用MBCS同时使用 

((CEdit*)GetDialogItem(IDC_EDIT))-> SetLimitText(10); 
用UNICODE肯定在两种情况下都无法达到你的需求
因为UNICODE中任何字符占的字节数都一样
这样你((CEdit*)GetDialogItem(IDC_EDIT))-> SetLimitText(10);以后将只能输入5个中/英文字符。

http://topic.csdn.net/t/20060413/01/4682886.html

posted on 2012-04-21 20:55 把酒劝雨雨不住 阅读(755) 评论(0)  编辑 收藏 引用

只有注册用户登录后才能发表评论。
网站导航:   博客园   博客园最新博文   博问   管理


<2012年4月>
25262728293031
1234567
891011121314
15161718192021
22232425262728
293012345

常用链接

留言簿

随笔档案

搜索

  •  

最新评论