博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Duilib Edit编辑框禁止输入中文的方法
阅读量:6883 次
发布时间:2019-06-27

本文共 932 字,大约阅读时间需要 3 分钟。

转载:

编辑框是供用户输入的,但有时候我们要限制用户输入的内容,比如我们不让用户输入中文,只能输入字符和数字,因此要对用户输入的内容进行过滤。

Duilib中的Edit是原生的窗口,当用户输入时,编辑框的内容被用户改变了,会触发EN_CHANGE事件

看Duilib源码

 

所以在我们自己的窗口类里处理 _T("textchanged") 消息类型

 

else if (msg.sType == _T("textchanged"))    {        if ( _tcscmp(m_pEdit->GetText(),m_pEdit->GetSrcTipValue()) != 0 &&!m_pEdit->GetText().IsEmpty())        {            CString strValue = m_pEdit->GetText();            for ( int nIndex = 0; nIndex < strValue.GetLength() ; nIndex++ )            {             if( strValue.GetAt( nIndex ) >=128 || strValue.GetAt( nIndex ) < 0 )                {
//ASCII码0~127是数字和字符,所以大于128的小于0的都过滤掉 strValue = strValue.Left( nIndex ) + strValue.Right( strValue.GetLength() - nIndex - 1 );//包含中文的字符过滤掉 m_pEdit->SetText(strValue); m_pEdit->SetSel(strValue.GetLength(),strValue.GetLength());//重设给光标设置位置 } } } }

看效果

 

你可能感兴趣的文章
Web前端开发必备
查看>>
Retrofit+RxJava(2)-基本使用
查看>>
SolidEdge 工程图中如何绘制中断视图
查看>>
struts2(四) ognl表达式、值栈、actionContext之间的关系
查看>>
如何让CMD命令运行后不自动退出
查看>>
机器学习中的相似性度量
查看>>
BZOJ 3698: XWW的难题 [有源汇上下界最大流]
查看>>
Alamofire源码解读系列(十一)之多表单(MultipartFormData)
查看>>
[LeetCode] Complex Number Multiplication 复数相乘
查看>>
IAAS、SAAS 和 PAAS 的区别、理解
查看>>
explore your hadoop data and get real-time results
查看>>
【Struts2学习笔记(9)】单文件上传和多文件上传
查看>>
算法的时间复杂度
查看>>
Androidclient性能參数监控
查看>>
如何加快建 index 索引 的时间
查看>>
java二维码生成与解析代码实现
查看>>
URI和URL差别以及相对路径和绝对路径的差别
查看>>
Unity 琐碎(4) 可视化辅助调试Giamos
查看>>
[mmc/sdio]Linux下的sdio和mmc
查看>>
java同一个实体的复制
查看>>