在dialog面版里放了2个编辑框:edit1 和edit2。分别添加了两个double类型的变量d1,d2,要求在edit1中输入带小数点的数值时,edit2能同时显示经过计算后的double类型结果
响应edit1的onchange消息使用UpdateData(TRUE)和UpdateData(FALES)未果,因为总是吞掉小数点,不只有什么有效的办法无?
响应edit1的onchange消息使用UpdateData(TRUE)和UpdateData(FALES)未果,因为总是吞掉小数点,不只有什么有效的办法无?
fabs(d1-d2)< 允许误差值
而又要求实时响应就出问题了,当你输入小数点时也触发UpdateData()
函数了,这时判断不是有效的数值就会截取了,如果你不是实时就不会
又问题
因为100跟100.理论上是相等的,但这样还是存在一个问题就是
当编辑框中的数值只有以为小数时,如100.1,按←键,会一下清除2位并且光标移到数字前面
变成 |100 ,不只有没有办法控制一下光标?
不是我没考虑过,但这样增加了编程难度,包括对输入字符的检测/输入数值范围的检测/以及取得字符串后向double型变量的转换/计算完毕后从double向string的转换
想一想头都大了
int iLength = m_wndEdit1.LineLength(-1);
m_wndEdit1.SetSel(iLength, iLength);就可以了
实在是没办法了,改用字符串了:(加了n行检测代码(n>100),不过效率还行,感觉不到迟钝