CEdit 中EN_CHANGE 和EN_Update怎么使用 啊

Tobby0419 2008-05-09 10:51:51
在VC的编辑框控件中怎么使用EN_CHANGE ,EN_Update两个消息啊,我在编辑框中关联了一个int的整型变量,m_intInner,我想让这个编辑框的内容变化时,自动的改变这个变量的值,谁能告诉我怎么做 啊?研究了半个晚上也没有研究出来,谢谢!
...全文
1263 10 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
Tobby0419 2008-05-11
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 liyinlei 的回复:]
可以在Edit控件失去焦点的消息(EN_KILLFOCUS)处理函数,或是在别操作开始时再去获取控件的内容,
[/Quote]
谢谢!这句话没有看懂啊!很抱歉哈,刚刚接触VC不久,菜鸟一个哈
yunoyang 2008-05-11
  • 打赏
  • 举报
回复

void CTempletDlg::OnChangeEditTime()
{
CString str;
GetDlgItemText(IDC_EDIT_TIME,str);
m_intInner=atoi(str);
}
liyinlei 2008-05-11
  • 打赏
  • 举报
回复
EN_CHANGE的消息每次变化都会发出。
可以在Edit控件失去焦点的消息(EN_KILLFOCUS)处理函数,或是在别操作开始时再去获取控件的内容,
再通过atoi转化成 整形即可
liyinlei 2008-05-10
  • 打赏
  • 举报
回复
添加EN_CHANGE的消息处理函数,在函数中利用GetDlgItem( IDC_EDIT )->GetWindowText( )
获取Edit控件上的内容。
Tobby0419 2008-05-10
  • 打赏
  • 举报
回复
忘记说了,这个不能用UpdateData(TRUE),因为我做的对话框界面上还有好多数据 ,我不想让他们一起更新,我是想让他们自己更新自己的,改变了就更新,没有改变不更新。之所以这样,是因为在某些线程运行的时候,我想在别的线程关联的编辑框中输入数据。谢谢!
yunoyang 2008-05-10
  • 打赏
  • 举报
回复
void CTempletDlg::OnChangeEditTime() {
CString str;
GetDlgItemText(IDC_EDIT_TIME,str);
m_intInner=atoi(str);
}
Tobby0419 2008-05-10
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 liyinlei 的回复:]
添加EN_CHANGE的消息处理函数,在函数中利用GetDlgItem( IDC_EDIT )->GetWindowText( )
获取Edit控件上的内容。
[/Quote]
我试了下,要是Edit控件的值刚开始为0的话,当变成123的时候,会调用3次这个函数,有没有办法让其变化完了再调用啊,谢谢!而且这个函数GetWindowText( ) 返回的是CString类型。谢谢!
lijianli9 2008-05-09
  • 打赏
  • 举报
回复
既然关联了变量了就不需要什么触发了,只是在你需要使用这个更新的变量前面调用UpdateData(TRUE)就可以了,false代表把变量的值更新到控件上.
true代表控件上的值更新到变量里面.
heqiangfly 2008-05-09
  • 打赏
  • 举报
回复
在对话框外部使用:
dg.m_intInner=oldvalue;
if(dg.DoModal()==IDOK)
{
newvalue=dg.m_intInner;
}

在对话框内部使用:
UpdateData();
newvalue=m_intInner;//m_intInner已经是输入的数值了
菜牛 2008-05-09
  • 打赏
  • 举报
回复
如果你关联了,为什么要自动改变关联变量呢?需要使用的时候用UpdateData更新数据就可以了啊。

15,980

社区成员

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

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