VC的MFC中如何捕获Edit控件的异常

来源:百度知道 编辑:UC知道 时间:2024/05/14 19:38:40
窗口上一个列表框,还有一个EDIT控件,DDX一个int数据,范围0~150,可修改。
列表中是人的姓名,EDIT控件中显示这个人的年龄。
我在列表的OnSelchangeListServer做了相应处理,即每次列表项目变化时,先保存当前的年龄,然后读出当前选择的人的年龄。
如果没有输入错误数据的话一切正常,可是如果输入的数据超出了范围,提示会出错,但是列表项目还是发生了移动。
我的想法是,如果出现了错误,应该停留在原来的列表项目上不变。
我做了一个简单的处理,即在OnSelchangeListServer中判断控件中值的范围,如果超过则不改变列表项目,也不做保存和读取的处理。可以这样也总是有逃不出的错误发生,比如我输入字母和数字混合的数据。
虽然我可以在EDIT控件中的CHANGE消息中判断来确保数据规范,也可以把DDX的类型换成string,但是我觉得这都不是最好的办法。
我觉得最好的办法是,在EDIT控件KILLFOCUS时,如果捕获到任何异常则停止后面的List Change的消息,可是不知道该怎么做。

在你输入完成 失去焦点这个函数里
if( Updatedata(True) == 0 ) //只要你的控件原来限定了int 以及范围
{
messagebox("输入错误!");
return;

}

给个网站你 你去看看 http://topic.csdn.net/t/20050503/15/3981947.html

你说的我也不是蛮清楚 ~! 大家一起学习!

DDX了后
输入非法数据不提示错误么