注册 登录
编程论坛 VC.NET论坛

[求助]怎样处理对话框上的文本框文字 的变化

yuze1980 发布于 2007-05-22 18:07, 2753 次点击

1、一个对话框做的计算程序,对话框上有很多edit文本框, 最后一个文本框是显示结果,
请问 怎样在任意一个文本框(除最后一个)输入的数字变化后,结果(最后一个)文本框的结果自动的更新的?

当任意一个文本框的文字变化后是不是有一个消息发出呢?


2、 当只有文本框时,当其文本发生变化时,会发出EN_CHANGE消息,当响应这个消息后测试程序,发现在文本框内无法输入小数点.
请问怎么回事啊?


注:用的是.net2002

[此贴子已经被作者于2007-5-23 12:49:07编辑过]

8 回复
#2
边城路人2007-05-23 10:07
.net2002
没有听说过
#3
边城路人2007-05-23 10:17
把编辑框的Number属性的值修改为false
就可以了
#4
yuze19802007-05-23 12:43
回复:(边城路人)把编辑框的Number属性的值修改为fa...
to 边城路人:

number属性已经为false了,不行啊。帮我想象办法把。
对了net2002和.net2003差不多
#5
边城路人2007-05-23 20:29

第二个问题把Number属性的值修改为false
第一个问题可以对第一个编辑框和第二个编辑框添加两个函数
OnChangEdit1()和OnChangEdit2()
在里面对其进行运算
void CShiyanDlg::OnChangeEdit1()
{
// TODO: If this is a RICHEDIT control, the control will not
// send this notification unless you override the CDialog::OnInitDialog()
// function and call CRichEditCtrl().SetEventMask()
// with the ENM_CHANGE flag ORed into the mask.

// TODO: Add your control notification handler code here
int end;
CString str;
this->UpdateData();
end=m_edit1+m_edit2;
str.Format("%16d",end);
str.TrimLeft();

CWnd* pWnd=this->GetDlgItem(IDC_EDIT3);
pWnd->SetWindowText(str);

}
就可以了

#6
yuze19802007-05-24 23:05
to……

1、不清楚为什么 number属性已经为false了,还是不管用。
2、用于输入的数据的文本框有很多,每个都增加onchange()函数太费时了。
#7
边城路人2007-05-25 18:00

可能是你的编译器暂时出现了问题吧
重建一个工程试试

#8
yuze19802007-05-26 00:58
to 边城路人:
感谢你如此耐心的解答。在vs2002和vs2003下都有这个毛病。我也经反复建了好几个工程。
具体现象如下:
第一次输入小数点(.)后edit ctrl 中的光标移到以输入数字的前面,第二次输入小数点后 在此刻的光标位置出现小数点
例如:
输入123后,输入小数点(.)则光标跑到了1前面(123的前面),在输入456,再输入小数点,则结果为456.123。
#9
边城路人2007-05-26 09:51

这就不太清楚了
我用的是2005
没有问题

1