我在使用MFC框架的时候,对对话框进行操作,代码如下:
void CDMDlgSeq::OnChangeEditInc() 
{
UpdateData(TRUE);
GetDlgItemText(IDC_EDIT_INC,m_sSeqIncres);
m_sSeqIncres.TrimLeft(_T("0"));    
}
m_sSeqIncres是对话框的变量名称,但是操作结束之后,对话框的值是并不是最终将变量中前面的0去掉的值,这是为什么呢?主要是最后m_sSeqIncres的值对话框没有取到,对话框如何得到它最终的值呢?

解决方案 »

  1.   

    要把编辑框里面的文字更新需要用UpdateData(false);改成
    UpdateData(TRUE);
    GetDlgItemText(IDC_EDIT_INC,m_sSeqIncres);
    m_sSeqIncres.TrimLeft(_T("0")); 
      

  2.   


    错了,改成
    UpdateData(TRUE);
    GetDlgItemText(IDC_EDIT_INC,m_sSeqIncres);
    m_sSeqIncres.TrimLeft(_T("0"));
    UpdateData(false); 
      

  3.   

    这个之前我也试过,但是效果是在MFC对话框里面就不能输入0了,而我要的效果是输入0,只是在最终传入数据库的时候把0去掉,我还试过这样的代码也是同样的问题:
     CString sItem;
        GetDlgItemText(IDC_EDIT_INC, sItem);
    sItem.TrimLeft(_T("0"));  
      

  4.   

    最后m_sSeqIncres的值对话框没有取到,对话框如何得到它最终的值呢?是因为:你没有调用UpdateData(false);
    UpdateData(TRUE);
    GetDlgItemText(IDC_EDIT_INC,m_sSeqIncres);
    m_sSeqIncres.TrimLeft(_T("0"));
    UpdateData(false);
      

  5.   

    UpdateData(TRUE);
    GetDlgItemText(IDC_EDIT_INC,m_sSeqIncres);
    m_sSeqIncres.TrimLeft(_T("0"));
    UpdateData(false);
    如果用这段代码的话,在对话框直接就输入不进去0,而我要的是对话框可以输入0,只是在保存的时候去掉0而已。
      

  6.   


    你给他提供一个函数就是了:CString GetStr()
    {
    CString str=m_sSeqIncres;
    str.TrimLeft(_T("0"));
    return str;
    }