CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
不看会后悔的Windows XP之经验谈 简单快捷DIY实用家庭影院
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  VC/MFC >  基础类

请问如何判断edit控件里面输入的是不是汉字啊?急

楼主hoco(流星雨)2002-03-10 12:36:58 在 VC/MFC / 基础类 提问

请问如何判断edit控件里面输入的是不是汉字啊?  
  给点思路,最好是给出源代码!谢谢了!  
  问题点数:50、回复次数:16Top

1 楼strip(阿飞 - Mozilla●CSDN●痛)回复于 2002-03-10 12:45:24 得分 10

UINT         Char;  
   
          if   (IsDBCSLeadByte(*pStr))  
          {  
                  Char   =   PackDBCS(pStr[0],   pStr[1]);  
          }  
          else  
          {  
                  Char   =   pStr[0];  
          }  
           
          GetCharWidth32(hDC,   Char,   Char,   pWidth);    
   
  或者用isleadbyte()  
   
  Top

2 楼hoco(流星雨)回复于 2002-03-10 13:35:54 得分 0

strip(阿飞)  
  很牛啊,这么快就到一颗红星了啊!  
  呵呵,佩服佩服  
  但是你的代码我不懂啊,能不能帮忙解释一下啊?Top

3 楼hoco(流星雨)回复于 2002-03-10 15:57:36 得分 0

到底有没有人回答这个问题啊?  
  急啊!Top

4 楼leonfu(子夜星光)回复于 2002-03-10 16:48:34 得分 5

if   you   use   Ansi,   the   chinese   characters   are   bigger   than   0x80Top

5 楼wagxm(大头)回复于 2002-03-10 16:52:19 得分 0

关注Top

6 楼ourworld(失魂落魄)回复于 2002-03-10 17:10:30 得分 5

strip(阿飞)   基本正确(在MBCS下),不过在UNICODE下不正确,而且判断结果只是表明它是否是一个多字节字符,而不一定是中文,日文、韩文,都得到同样结果Top

7 楼idAnts(此广告位招租)回复于 2002-03-10 17:23:21 得分 20

bool   IsHZCode(unsigned   char   bC1,unsigned   char   bC2)  
  {  
  if((bC1>=0xa1)&&(bC1<=0xfe)&&  
  (bC2>=0xa1)&&(bC2<=0xfe))  
    return         true;  
   
          return       false;  
  }  
   
  这个只能判断国标码。Top

8 楼hoco(流星雨)回复于 2002-03-10 17:35:50 得分 0

ourworld(失魂落魄)    
  ,谢谢。:)  
  不过在座的能不能告诉我原理呢?  
  不明白  
  strip(阿飞)   写的东西啊,  
  是不是这样啊。  
  一个汉字是由2个字节组成。然后  
  if   (IsDBCSLeadByte(*pStr))    
  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
      这是判断什么呢?lead   byte是什么啊?看不懂  
  我看msdn的时候,看不懂这个词。说是有两个字节组成的。  
  是不是一个字呢?  
  {    
  Char   =   PackDBCS(pStr[0],   pStr[1]);    
                ~~~~~~~~  
  这个函数没有找到啊!  
   
  }    
  else    
  {    
  Char   =   pStr[0];    
  }    
   
  GetCharWidth32(hDC,   Char,   Char,   pWidth);    
  ~~~~~~~~~~~~~  
  这个函数也不知道是什么意思,看不懂。:(  
  大家帮帮忙啦!我会加分的!  
  Top

9 楼hoco(流星雨)回复于 2002-03-10 17:38:33 得分 0

idAnts(鹤舞白沙——我心飞翔)    
  呵呵,谢谢。  
  我去试试,如果可以的话,马上给分  
  我最讨厌那些解答完问题不给分的人了,  
  大家讨论一下啊,这是怎么回事啊,都ft死了!  
  呵呵Top

10 楼111222(www.111222.cn)回复于 2002-03-10 18:06:59 得分 5

必须逐个字符判断,判断ASCII码或者用IsDBCSLeadByte  
   
  IsDBCSLeadByte函数耗内存,尤其在你循环判断很长的字符串的时候  
   
  我建议你判断ASCIITop

11 楼cppnet(cppnet)回复于 2002-03-10 18:58:07 得分 5

最好去判断Ascall码  
  很快的Top

12 楼llmcw(流星雨)回复于 2002-03-10 19:10:46 得分 0

同意楼上的.Top

13 楼kant76(双剑合璧)回复于 2002-03-10 20:07:50 得分 0

汉字是不是两个字节组成?  
  LeadByte是不是就是第一个字节?  
  判断ASCII,是不是就是判断LeadByte是否大于0x80啊?Top

14 楼hoco(流星雨)回复于 2002-03-10 21:53:22 得分 0

leadByte到底是什么啊?  
  谁能告诉我呢?  
  哎呀,算了,给分吧!  
  大家最好再给我一些答案吧!  
  好吗?:),谢谢!!!!!!!Top

15 楼ourworld(失魂落魄)回复于 2002-03-11 22:05:03 得分 0

测试指定自负是否是一个MCBS的起始字符,实际是判断x<=char<=y是否成立,char是你的参数,x、y可以在MSDN上查到,但不要直接使用不等式判断,其间有代码页问题Top

16 楼hoco(流星雨)回复于 2002-03-12 15:02:16 得分 0

谢谢ourworld(失魂落魄)  
  的解答。  
  Top

相关问题

  • 如何使Edit控件作为密码输入框时(PasswordChar设为*),能接受汉字输入?
  • edit编辑框可以判断输入的字符是汉字还是英文吗?如果不能,哪个控件可以呢?
  • 开发文本框控件,如何检测输入的是否汉字?
  • CEdit控件如何判断输入内容是英文还是汉字
  • 如何控制在Tedit控件中,让其无法输入汉字及字母(只能让其输入数字)
  • 怎么控制edit控件输入
  • 如何读取(或判断)Text or Richtextbox控件中刚输入的字符(或汉字)
  • !!!乱码!!! 第三方控件vaSpread在输入汉字时出现乱,急!!! ------------在线等......
  • 如何实现在combobox控件中输入汉字(多个)的第一个字母自动找到item中的汉字串?
  • 如何判断edit框输入的是汉字还是英文???

关键词

  • pstr
  • bc
  • char

得分解答快速导航

  • 帖主:hoco
  • strip
  • leonfu
  • ourworld
  • idAnts
  • 111222
  • cppnet

相关链接

  • Visual C++类图书
  • Visual C++类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo