Edit Control控件的EN_KILLFOCUS消息即当鼠标光标从编辑控件内离开时对应的消息。利用此消息就可以在光标离开当前Edit Control编辑框后就判断刚刚的输入是否合理。如果不合理再将光标置回编辑框,如此直到用户输入合理为止。
对于多个Edit Control编辑框,如果彼此之间的输入都是独立而无逻辑关系联系的,那么利用Edit Control编辑框的EN_KILLFOCUS消息来判断单个Edit Control编辑框的输入是否合理是很简单的。但是如果多个编辑框之间的输入的数据之间含有逻辑关系则处理起来可就要分析分析了。
1 EN_KILLFOCUS消息宏的工作过程
如上图,这里有三个Edit Control编辑框,它们要求用户输入的含义分别表示财富、样貌及品格。且这三个编辑框用输入的数字代表财富、样貌及品格的大小,各编辑框输入大小要求的范围为[1, 98]三个编辑框内输入的值的总和要为100。随便从哪一个编辑框开始输入都可以。那么怎么用程序来实现需求呢?
撇开高级使代码精简的算法不谈,现就用最朴实的if..else语句来实现,用分支结构列举完所有的情况,那么在对每个Edit Con