将CEdit控件里面出现字符串赋值给m_str,我在EN_CHANGE的消息响应函数里加入以下代码:
********************************************************
if("Beijing"==m_str)
{
    fun();
    return ;    
}
else
{
    return ;
}
********************************************************
但是没有响应fun()
EN_UPDAE也一样
请高手指点

解决方案 »

  1.   

    那不是因为没有响应你的EN_CHANGE消息,而是if判断为假,原因么,呵呵
    需要调用UpdateData()函数。另外的方法:
    void CDialogtestDlg::OnChangeEdit1() 
    {
    CString szText;
    GetDlgItem(IDC_EDIT1)->GetWindowText(szText);
    if("Beijing"==szText)
    fun();
    }
      

  2.   

    LongLongAgoImBoy(ThereIsAMe) ,按你的建议调用UpdateData(FALSE)没有响应,用你的方法也不行。这时我的IDC_EDIT_RECEIVE编辑框里面已经显示了Beijing。下面是修改后的代码:
    **************************************
    CString m_str;
    GetDlgItem(IDC_EDIT_RECEIVE)->GetWindowText(m_str);
    UpdateData(FALSE);
    if("Beijing"==m_str)
    {
         MessageBox("Right");
         return ;
    }
    else
    {
         MessageBox("Error");
         return ;
    }**************************************
    不知道为什么不行
      

  3.   

    不应该是UpdateData(FALSE);
    换成UpdateData(TRUE);后没有反映
      

  4.   

    void CExp02Dlg::OnChangeEdit1() 
    {
    UpdateData();
    if (_T("Beijing")==m_str)
    {
    fun();
    return;
    }
    }
      

  5.   

    谢谢LongLongAgoImBoy(ThereIsAMe)和shg104(果冻) 。
    我是在一个大程序里面运行的,没有响应。
    但我新建了一个工程后,单击按钮使得CEdit控件(ID为IDC_EDIT_RECEIVE)里面显示Beijing,然后在EN_CHANGE的响应函数里面加入上面代码:
    *****************************
    CString m_str;
    GetDlgItem(IDC_EDIT_RECEIVE)->GetWindowText(m_str);if("Beijing"==m_str)
    {
         MessageBox("Right");
         return ;
    }
    else
    {
         MessageBox("Error");
         return ;
    }*****************************然后CEdit控件里面显示Beijing,随后弹出提示框:Right
    改动使CEdit控件里面显示其他字符串时,弹出提示框:Error能够正常响应,我不知道为什么在大程序里面不行。