论坛典型疑难地一个处理办法

文章作者 100test 发表时间 2007:10:31 13:58:56
来源 100Test.Com百考试题网


问题一.如何是ED99v支持小数的输入.

一般的ED99v控件支持很多格式的输入,如果要支持数据的输入的话,你可以修改ED99v控件属性,选中NUMBER属性就可以了,但是这样不支持.号的输入,也就是不支持小数的输入了.

这里的解决方法是派生一个类CED99v,然后映射消息EN_CHANGE,因为如果你的控件使用这个派生类的话,在你进行你的ED99v控件进行输入字符改变的时候都会触发这个事件,不用为你的控件每个触发EN_CHANGE事件了.然后判断新输入的字符,如果这个字符符合数字规则或者.号规则,再计算已经出现的.号次数,当符合这种条件时允许输入操作,否则删除刚输入的字符,进行重新设置编辑框字符串的操作.

可能涉及到的问题,1:如何判断一个字符串是数字还是别的类型.2:如何查找一个字符串中某个符号出现的次数.3:如何设置ED99v光标的位置.

1 问题的解决方法可以利用下面的方法解决.
CString strtemp=szTemp.SpanIncluding("0123456789").
if(!strtemp.IsEmpty())
//这个字符串为数字
else
//非数字

2 问题我用循环递归的方法实现,首先查找最先出现的符号位置,然后利用字符串分割技术取RIGHT部分再进 行循环调用就可以了,相关代码可以见下:
int CNumEditCtrl::GetStringNum(CString szVal)//获得字符串中间.号的个数
{
int nNum=0.
while(1)
{
int nCount=szVal.Find(’.’).
if(nCount==-1)
break.
szVal=szVal.Right(szVal.GetLength()-nCount-1).
nNum .
}
return nNum.

}


相关文章


计算机网络安全隐患与防范策略的探讨
警惕最棘手安全问题移动技术的安全风险
论坛典型疑难地一个处理办法
设计浏览器不弹出警告地ActiveX控件
可配置颜色地静态控件、单选按钮等
Windows下实时行式打印系统设计
C语言辅导:图书管理程序
澳大利亚华人论坛
考好网
日本华人论坛
华人移民留学论坛
英国华人论坛