登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

沙漠里de烟雨

原创分享,禁止转载

 
 
 

日志

 
 

MFC--判断编辑框非空,字数超限,非中文字符的方法  

2012-09-04 01:11:24|  分类: C++ |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

//
BOOL CNewProjectBak::readFromEditCtrl()
{
 //先定义变量;
 CString projectName;  //备份项目名称;
 CString operatorName; //新建备份项目操作人;
 CString fuctionRemark;//项目功能备注;

 //将控件与变量关联;
 GetDlgItemText(IDC_EDIT_PROJECT_NAME, projectName);
 GetDlgItemText(IDC_EDIT_OPERATOR_NAME, operatorName);
 GetDlgItemText(IDC_EDIT_FUNCTION_REMARK, fuctionRemark);

 //再检测这三个文本编辑框的输入是否正确;
 if(!SwitchCase(IDC_EDIT_PROJECT_NAME,projectName,_T("<项目名称>")))
  return FALSE;
 if(!SwitchCase(IDC_EDIT_OPERATOR_NAME,operatorName,_T("<操作人员姓名>")))
  return FALSE;
 if(!SwitchCase(IDC_EDIT_FUNCTION_REMARK,fuctionRemark,_T("<项目功能备注>")))
  return FALSE;

 //如果三项输入都正确,则执行下面的语句;
 CString str = projectName+_T("--")+operatorName+_T("--")+fuctionRemark;
 AfxMessageBox(str);
 m_strBakRootName = projectName;  //获取项目备份名;

 return TRUE;
 
}
//////////////////////////////////////////////////////////////////////////---zwh;

//////////////////////////////////////////////////////////////////////////---zwh--注:辅助性函数,用于选择性弹出相关信息;
BOOL CNewProjectBak::SwitchCase(UINT idcEdit,CString str,CString msg)
{
 switch(Consider(idcEdit,str))
 {
 case 0:
  AfxMessageBox(msg+_T("不能为空"));
  return FALSE;
 case 1:
  AfxMessageBox(msg+_T("字数太多!"));
  return FALSE;
 case 2:
  AfxMessageBox(_T("您输入的")+msg+_T("包含非中文字符"));
  return FALSE;
 default:
  break;
 }
 return TRUE;
}
//////////////////////////////////////////////////////////////////////////---zwh;

//////////////////////////////////////////////////////////////////////////---zwh--注:辅助性函数,用于判断非法输入;
int CNewProjectBak::Consider(UINT idcEdit,CString str)
{
 if (str.IsEmpty())  //输入为空;
 { 
  return 0;
 }//

 //////--判断是否是中文字符;
 size_t len = strlen(str.GetBuffer());
 char cStr[100]  =  "";
 strcpy(cStr,str.GetBuffer());

 size_t maxNum = 0;
 switch(idcEdit)
 {
  case IDC_EDIT_PROJECT_NAME:
   maxNum = 20;  //项目名不能超过10个汉字!
   break;
  case IDC_EDIT_OPERATOR_NAME:
   maxNum = 12;  //姓名不能超过6个汉字!
   break;
  case IDC_EDIT_FUNCTION_REMARK:
   maxNum = 40;  //项目功能备注不能超过20个汉字!
   break;
 }

 if(len>maxNum)
 {
  return 1;
 }
 for(size_t i=0;i<len;i++)
 {
  if((0x80 & cStr[i]) != 0x80)  //包含非中文字符;
  {
   return 2;
  }      
 }
 //////--
 return 3;
}

  评论这张
 
阅读(1192)| 评论(0)

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2018