首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > VC/MFC >

关于edit控件小数计算有关问题

2014-07-10 
关于edit控件小数计算问题有两个控件A和B,我想实现在A输入小数,即时在B中显示A+10的结果。我在OnChange事件

关于edit控件小数计算问题
有两个控件A和B,我想实现在A输入小数,即时在B中显示A+10的结果。
我在OnChange事件实现,一但使用UpdateDate()更新数据小数点就输不进去。
不用UpdateDate()可以输入小数点,但不能实时显示数据。
请问高手们有没有方法实现。

[解决办法]
void CtestbDlg::OnChangeEdit2()
{
// TODO: 如果该控件是 RICHEDIT 控件,它将不
// 发送此通知,除非重写 CDialogEx::OnInitDialog()
// 函数并调用 CRichEditCtrl().SetEventMask(),
// 同时将 ENM_CHANGE 标志“或”运算到掩码中。

// TODO: 在此添加控件通知处理程序代码
CString STemp;
UpdateData( TRUE);

STemp.Format ( _T("%.2f"),m_fEdit2 + (float)10.0);

m_CtrlEdit3.SetWindowTextW ( STemp );
}
[解决办法]
如下代码经调试通过 ,可以满足楼主所需要求。

C/C++ code
void CDlgDlg::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    UpdateData(   TRUE   );     double   iMyTest;     double   iResult;     iMyTest   =   atof(m_MyTest);//m_MyTest为Edit1的关联变量CString       iResult   =   iMyTest*2;        m_strChang.Format("%.2f ",iResult);//m_strChang为出去结果的Edit2的关联变量CString       UpdateData(FALSE); }
[解决办法]
C/C++ code
void CXXXDlg::OnChangeEdit1() {    CString str(_T(""));    GetDlgItemText(IDC_EDIT1, str);    double nVal = _tcstod(str, NULL) + 10;    str.Format(_T("%lf"), nVal);    SetDlgItemText(IDC_EDIT2, str);} 

热点排行