两种方法均来自互联网,仅为了收录

方法一:

新建一个类并且继承类CEdit,重写消息WM_CHAR

添加代码:

void CDoubleEdit::OnChar(UINT nChar, UINT nRepCnt, UINT nFlags)

{

// TODO: 在此添加消息处理程序代码和/或调用默认值

CString strEdit;

GetWindowText(strEdit);

int length=strEdit.GetLength();

int pos=strEdit.Find('.');

//8是退格,是小数点,具体参考键盘常用ASCII码

if((nChar>=48 && nChar<=57) || nChar==46 || nChar==8)

{

if(nChar==8)

{

CEdit::OnChar(nChar, nRepCnt, nFlags);

return;

}

if(((length-pos)<=2 && pos!=-1 && nChar!=46) || pos==-1 )

{

CEdit::OnChar(nChar, nRepCnt, nFlags);

}

}

}

方法二:

添加CEdit的ON_CHANGE事件

代码如下:

void CDlgTestDlg::OnEnChangeEdit2()

{

// TODO: 如果该控件是RICHEDIT 控件,它将不

// 发送此通知,除非重写CDialog::OnInitDialog()

// 函数并调用CRichEditCtrl().SetEventMask(),

// 同时将ENM_CHANGE 标志“或”运算到掩码中。

// TODO: 在此添加控件通知处理程序代码

CString csAreaS;

GetDlgItem( IDC_EDIT2 )->GetWindowText( csAreaS );

// 只允许输数据

int nStringLength = csAreaS.GetLength();

int nDotCount = 0;

// 点字符不能多于个

for ( int nIndex = 0; nIndex < nStringLength; nIndex++ )

{

if ( csAreaS[ nIndex ] == '.' )

{

nDotCount++;

if ( nDotCount > 1 )

{

CString csTmp;

csTmp = csAreaS.Left( nIndex );

csTmp += csAreaS.Right( csAreaS.GetLength() - nIndex - 1 );

//csRadius = csRadius.Left( nIndex + 1 ) + csRadius.Right( nStringLength - ( nIndex + 1 ) - 1 );

GetDlgItem( IDC_EDIT2 )->SetWindowText( csTmp );

return;

}

}

}

// 不允许输入数字和点以外的字符

for ( int nIndex = 0; nIndex < nStringLength; nIndex++ )

{

if ( csAreaS[ nIndex ] != '.' && ( csAreaS[ nIndex ] > '9' || csAreaS[ nIndex ] < '0' ) )

{

csAreaS = csAreaS.Left( nIndex ) + csAreaS.Right( csAreaS.GetLength() - nIndex - 1 );

GetDlgItem( IDC_EDIT2)->SetWindowText( csAreaS );

return;

}

}

}

转载于:https://www.cnblogs.com/luoshupeng/archive/2011/09/12/2174289.html

限制CEdit 只输入小数的两种方法相关推荐

  1. php 保留两位小数的两种方法

    php 保留两位小数的两种方法 echo sprintf("%.2f", 2.136); //四舍五入 echo "<br/>"; echo (in ...

  2. TextBox控件中只输入整数的几种方法

    方法一.   if(e.KeyChar!=8&&!Char.IsDigit(e.KeyChar)&&e.KeyChar!='.') {     e.Handled = ...

  3. Swift中实现用户输入防抖动的两种方法

    功能需求 用户通过App搜索服务器中的数据,当用户在搜索框中输入关键字时,要求App将关键字通过网络连接传递到服务器接口,并返回服务器的搜索结果. 这里有个问题:假设用户最终想要输入的关键字为pand ...

  4. WPF TextBox限制只能输入数字的两种方法

    文本框中只能输入数字,一个常见的功能喽,今天就来看看如何实现它~ 下面就看看代码 思路都写在xaml里面了, MainWindow.xaml: <Window x:Class="wpf ...

  5. Overleaf使用Latex输入中文的两种方法

    第一种: 例如文档类为article 则修改文档名为\documentclass{ctexart} report和book对应的为ctexrep和ctexbook 注意涉及到的源文件使用UTF-8编码 ...

  6. 多行文本框限制输入字符长度(两种方法)

    方法一:弹出对话框提示 1.html代码 <HTML>     <HEAD>         <title>WebForm6</title>       ...

  7. java中n次方怎么表示_n次方_word中输入N次方的符号的两种方法

    为了打编程题的题目,而题目里面有X²,但我不懂,只好去网上查了,经过我的多方查找,最后总结了一下几种方法.下面一起和学习啦小编来学习一下输入N次方的符号吧,希望对你有帮助! 输入N次方的符号方法一 1 ...

  8. android 只输入数字与小数点_Android金额输入框只允许输入小数点后两位效果

    一:要实现这个效果也不是很复杂,只需要设置输入框输入的字符类型.设置InputFilter.设置输入变化监听即可.下面直接来看代码吧-. 二:new 一个class extends AppCompat ...

  9. php数字两位小数_PHP保留两位小数的几种方法

    代码如下所示: $num = 10.4567; //第一种:利用round()对浮点数进行四舍五入 echo round($num,2); //10.46 //第二种:利用sprintf格式化字符串 ...

最新文章

  1. php的isset(),PHP isset()具有多个参数
  2. 你不得不知道的Visual Studio 2012(3)- 创建Windows应用程序
  3. java logging包_用JDK中提供的java.util.logging.*包创建Logger对象----原创
  4. 关于字节序(大端法、小端法)的定义
  5. django开发中安装包时遇到的 关于 read timed out的问题的解决
  6. 元宵快乐:看SQL大师们用SQL绘制的团圆
  7. 【数据结构与算法】主宰这个世界的10大算法
  8. 124第十四章—权限的配置
  9. 白岩松谈“房闹“现象
  10. tableau 地图不显示怎么回事
  11. joystick手柄驱动安卓_万能手柄驱动(PPJOY) 官方版 (图文)
  12. 机器学习项目中不可忽视的一个密辛 - 大数定理、中心极限定理
  13. 数的“平方”速算秘诀,超实用的技巧,3秒出答案
  14. linux系统怎么打开菜单,Linux如何编辑开始菜单
  15. 谷歌中设置utf8编码
  16. 计算机开机检测dhcp,电脑开机显示dhcp是什么意思
  17. 手机拍证件照的工具哪个好用
  18. 2017 年度十大最受欢迎的浏览器,你在用哪一款?
  19. 为何某些文章的阅读量这么高?
  20. [附源码]Python计算机毕业设计道路桥梁工程知识文库系统Django(程序+LW)

热门文章

  1. tightvnc,tightvnc软件介绍,详细介绍
  2. 尚学堂oracle笔记1
  3. FragmentTabHost的应用,完美解决滑动的时候,一些问题
  4. 【Kubernetes】 多云管理策略解析
  5. Google走了,如果没有搜索引擎,大家还会编程吗?同时猜想后面可能会发生的事?
  6. rss订阅神器inoreader与rss制作网站Feed DIY
  7. 公众号关联小程序新规则
  8. 基于ComblockEngine+Unity的联机版坦克大战(一)
  9. 理解object、context、this、closure和return——初级进阶的必经之路--转载
  10. 第四章 CSS入门 A卷