急问:我用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) 编辑 收藏 引用