为什么在在编辑框中不能输入负数?!!!!!!!!!

ivy_ou 2002-05-31 05:18:59
定义了一个对话框,是int 型的,我在程序中另外定义了它的取值范围,如果不把它添加消息映射,在判断范围时总是显示超出定义的范围(我定义的范围只能是1和-1),但如果我添加了消息映射,则当我输入负号时,总是弹出提示框“请输入一个整数”(这不是我定义的)。要把光标覆盖它再输入才能输入,这是什么原因?
...全文
866 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
mousubin 2002-06-01
  • 打赏
  • 举报
回复
为何在EN_CHANGE里用UpdateData(TRUE)
ivy_ou 2002-06-01
  • 打赏
  • 举报
回复
我没有选(Number),只是在Member Variable中把它的变量类型设为int,再在Message Maps中为它添加EN_CHANGE消息映射。然后 添加UpdateData(TRUE);
这样就不能输入负数了,可不可以详细地告诉我原因!
fengzi_zhu 2002-06-01
  • 打赏
  • 举报
回复
问题出在OnChangeEdit1()(EN_CHANGE消息处理函数)上,当你在Edit Control中每输入一位时,系统就发出一个EN_CHANGE消息。当你输入一负号时,她就调用OnChangeEdit(),而你又在OnChangeEdit()中使用了UpDateDate(TRUE),结果就把一个负号赋值给m_edit1了,这样当然它会提示输入-1到1之间的整数了,按了确定之后,再在负号后输入1就不会跳出提示了。
方法一:使用EN_KILLFOCUS,当Edit Control失去焦点时发出。
方法二:不需要override消息函数,就在你要用这一数据时
UpdataDate() 吧!

嘿!记得给分哦~~
programcat2001 2002-06-01
  • 打赏
  • 举报
回复
你设置编辑框属性为数值(Number)输入了吧,改成Multiline试试
dycdyc123 2002-06-01
  • 打赏
  • 举报
回复
果输入的数据是1或-1 的话,为什么还用CEdit呢???》

用个CComboBox不更好!

至于为什么不能输入-1 可能是设置的问题!
可以把下限设小一点!
试试!
papaya_stone 2002-06-01
  • 打赏
  • 举报
回复
在EN_CHANGE中用UpdateDate,每次内容改变时UpdateDate会进行更新,单个的负号会被认为非法字符。
ivy_ou 2002-06-01
  • 打赏
  • 举报
回复
但如果不用,那永远都会提示我输入的数据超出了定义的范围,我在添加数据的按钮的代码中增加了一个判断语句,如果输入的数据不是1或-1,就提示错误,
liugy 2002-05-31
  • 打赏
  • 举报
回复
你设置为数值(Number)输入了吧,你去掉呢?
BinaryTreeEx 2002-05-31
  • 打赏
  • 举报
回复 1
你说清楚点

16,472

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Web++
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

试试用AI创作助手写篇文章吧