如何判定EDIT框的数据已经被用户改变,并且在改变后马上执行一段程序

yljleslie 2006-08-24 08:33:21
我的界面上有一个旋扭,有个EDIT框设定为其伙伴,我需要当用户改变EDIT框中的值后马上将该EDIT框中的数据发送到串口.
这应该想应哪个消息呢? 我试了WM_CHANGE和 WM_UPDATE都觉得不行,因为这两个消息都是在刚向EDIT框中写入数据,就会响应,比如我想输入123,可是当我输入1的时候程序就已经执行WM_CHANGE或WM_UPDATE的消息函数了,这个问提应该怎么解决啊,如何确定用户输入完成执行程序呢?
各位大虾给点意见吧!!!
...全文
107 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
wickey_lu 2006-08-26
  • 打赏
  • 举报
回复
同意starytx的说法,不如你要求用户在输入完后按一个Enter表示结束吧,这样的话就可以处理,
此时,你可以重载函数BOOL PreTranslateMessage(MSG* pMsg) ,然后在里面添加以下代码:
if((pMsg->message==WM_KEYDOWN)&&(pMsg->wParam==VK_RETURN))
{
UINT ID=GetFocus()->GetDlgCtrlID();
//此时如果ID等于目标编辑框的ID,你就可以取得输入的内容了
}
yljleslie 2006-08-25
  • 打赏
  • 举报
回复
楼上的,我也觉得这个要求怪怪的,可是程序中需要这样 我也不知道该怎么办了
starytx 2006-08-24
  • 打赏
  • 举报
回复
晕,这不是消息的问题,是你的要求太奇怪
试想,程序怎么知道用户输入多少算完成呢?
当然,如果你的输入的字符数有规律,比如说输入3个就算完成,那也好办啊,就在你的消息函数里计算输入的字符数,到3 后就执行要做的事情
xjtuzhw 2006-08-24
  • 打赏
  • 举报
回复
可以加上焦点判断用户是否输入完毕
yljleslie 2006-08-24
  • 打赏
  • 举报
回复
我上面写错了 ,就是EN_CHANGE 和 EN_UPDATE 这个就是不行啊,数据还没有输入完整 ,就已经开始响应消息函数了
zengwenfu 2006-08-24
  • 打赏
  • 举报
回复
编辑框里的EN_CHANGE消息

15,979

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 界面
社区管理员
  • 界面
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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