查看DoDataExchange函数中有没有对应的DDX函数调用.
DDX_Control

解决方案 »

  1.   

    对应的DDX函数调用.
    DDX_Control
    如下void CTestDlg::DoDataExchange(CDataExchange* pDX)
    {
    CDialog::DoDataExchange(pDX);
    //{{AFX_DATA_MAP(CTestDlg)
    DDX_Text(pDX, IDC_EDITSEARCH, m_SearchValue);
    DDV_MaxChars(pDX, m_SearchValue, 8);
    //}}AFX_DATA_MAP
    }
      

  2.   

    既是dui de,怎末m_SearchValue总是初始化时的值?
      

  3.   

    Why?Why?Why?Why?Why?Why?Why?Why?Why?Why?Why?Why?Why?Why?Why?Why?Why?Why?Why?Why?Why?Why?Why?Why?Why?Why?Why?
      

  4.   

    Why?Why?Why?Why?Why?Why?Why?Why?Why?Why?Why?Why?Why?Why?Why?Why?Why?Why?Why?Why?Why?Why?Why?Why?Why?Why?Why? 
      

  5.   

    你不会是没有调用UpdateData吧??我闪,:)
      

  6.   

    谢谢楼上的兄弟何处调用UpdateData
      

  7.   

    在你需要得到编辑框的数据以前,
    如果是在对话框中:this->UpdateData(FALSE); //变量到控件
                     this->UpdateData(TRUE); //控件到变量
    如果是其他地方,取得对话框的CWnd指针,代替this。
    你可以看看msdn,比我说的准确多了。
      

  8.   

    不会是在DoDataExchange中调用吧?不好意思,怎摸给分?
      

  9.   

    你是用classwizard做的,所以DDX几乎不用考虑它,微软给你做好了。
    this->UpdateData(TRUE);
    MessageBox(m_sEditText); //这样显示编辑框的文本
    需要使用之前调用。
      

  10.   

    楼上的兄弟,我想控件既与变量发生交换,那变量应时刻反映录入的值,就象VB里控件的属性值一样,但为什摸AfxmessageBox(m_SearchValue)总是空格?再问怎摸给分? 
      

  11.   

    VC里面不是时刻反映的。
    你需要调用UpdateData(),
    给分嘛,嘿嘿。
    在我的任意一个回答后面输入分数,然后在问题的右边那个地方输入密码,就OK拉。
      

  12.   

    在editbox的en_change事件中写UpdateData(),才解决问题,可是整个页面没个写分的地方.