当我在一个人编辑框输入一个字符时(之前没有任何字符),在OnUpdateEdit()函数中获得编辑框文本,不为空?EN_UPDATE不是在编辑框更新之前触发的吗?不应该获得的是空文本吗?

解决方案 »

  1.   

    EN_UPDATE
    This notification message is sent after the control has formatted the text, but before it displays the text. 
      

  2.   

    就是这个消息,如果你绑定了string变量在edit上,这个时候  m_strEdit1 的值还没有变
    DDX_Text(pDX, IDC_EDIT1, m_strEdit1);如果你是
    GetDlgItem(IDC_EDIT1)->GetWindowText(str);
    的方式,则str是变了过后的值, 因为窗口上已经有你输入的字符/没有了删除的字符
      

  3.   

    那你就加个变量自己记 m_strEditOld;DDX_Text变量之所以还是原来的值其实也是记忆功能~
    如果你在OnChange中 UpdateData()它也拿到最新的值了.
      

  4.   

    怎么记m_strEditOld啊?在哪个消息函数中记录?我的编辑框设置成控件了,不能绑定CString
      

  5.   

    设成控件了也可以再加一个DDX_Text绑定CString啊~
      

  6.   

    你绑定为控件怎么的绑的就怎么绑~ 只不过在选类型的时候选CString如果IDE不能自动绑就手动改代码.h
    添加成员
    CString m_strEdit1;.cpp
    CXXXDlg::DoDataExchange()
    {
        DDX_Text(pDX, IDC_EDIT1, m_strEdit1); 
    }