posts - 1,  comments - 0,  trackbacks - 0
  2012年4月21日
急问:我用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 @ 2012-04-21 20:55 把酒劝雨雨不住 阅读(755) | 评论 (0)编辑 收藏
仅列出标题  
<2026年6月>
31123456
78910111213
14151617181920
21222324252627
2829301234
567891011

常用链接

留言簿

随笔档案

搜索

  •  

最新评论