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

论坛典型疑难地一个处理办法,第1张

论坛典型疑难地一个处理办法,第2张

问题1。ED99v如何支持十进制输入?

通常,ED99v控件支持多种格式的输入。如果要支持数据的输入,可以修改ED99v控件的属性,选择NUMBER属性。但是,这不支持的输入。符号,也就是小数的输入。

这里的解决方案是派生一个类CED99v,然后映射消息EN_CHANGE,因为如果你的控件使用了这个派生类,那么当你改变你的ED99v控件的输入字符时就会触发这个事件,所以你不需要为你的每个控件触发EN_CHANGE事件。然后判断新输入的字符,如果这个字符符合数字规则或。数法则,然后计算。已经出现的数字。当这个条件满足时,就允许你输入。

可能出现的问题:1。如何判断一个字符串是数字还是另一种类型?2.如何求一个符号在一个字符串中出现的次数?3.如何设置ED99v的光标位置?

1问题的解决方法可以通过以下方法解决。
cstringstrtemp = SZ temp . span including(" 0123456789 ");
如果(!ST temp . isempty()]
/该字符串是一个数字
否则
/不是一个数字。

2我用循环递归的方法来实现这个问题。先找到第一个符号位置,然后用串分割技术取对部分,循环调用。相关代码如下:
intcnumeritctrl::getstrinnum(cstring szval)//获取的编号。字符串中间的符号
{
int nnum =
while(1)
{
int nCount = szVal。查找(' . '));
if(nCount = =-1)
break;
szVal=szVal。右(szVal。GetLength()-nCount-1);
nnum++;
}
return nNum;

}

位律师回复
DABAN RP主题是一个优秀的主题,极致后台体验,无插件,集成会员系统
白度搜_经验知识百科全书 » 论坛典型疑难地一个处理办法

0条评论

发表评论

提供最优质的资源集合

立即查看 了解详情