在一个对话框里,有一个EDIT控件,我在EDIT控件改变时,先UpdateData(true),断点调试,可没有得到该控件的值,检查了变量关联,是正确的,还有resource.h文件中定义的ID,开始时有重复的,也手工改过来,但还是没有得到变量的值,到底什么原因呀?谢谢各位,在线等……

解决方案 »

  1.   

    还有,在resource.h文件中定义的ID值有什么要求,会不会是改错了?我是有重复ID的,都把原来的1000多改为2000多,把1改为2。
      

  2.   

    和ID没有关系,只要同一个对话框中的ID不重复就可以了。肯定程序那个地方有错啊。贴出来看看吧。
      

  3.   

    把关联变量的值改一下,然后UpdateData(FALSE),看看能否修改控件的值
      

  4.   

    在什么函数,怎么调用的UpdateData(),贴代码看看,一看就知道了
      

  5.   

    我也遇到这个问题了,好象updatedata没什么用处一样
      

  6.   

    在输入内容改变时触发消息的处理函数中,部分代码如下
    void CChangeDlg::OnChangeChangeEditId() 
    {
    CRecordset rs(&db); CString strDep,strJob;
    CString str, strSQL;
    int i = 1;

        UpdateData(true);      //***此处设断点,然后单步执行,m_strID即
                              为EDIT控件关联的变量,updatedata后,m_strID的值总是空的 if(!m_strID.Find("P"))
    str.Format("P%05d",m_strID);
    m_strID  = str; //构造记录集

    rs.Open(CRecordset::forwardOnly,"select * from PERSON where ID='"+ str +"'");但把代码如下,断点在断点处确可以得到str即EDIT传入的值
    void CChangeDlg::OnChangeChangeEditId() 
    {
    CRecordset rs(&db); CString strDep,strJob;
    CString str, strSQL;
    int i = 1;

    m_ctrID.GetWindowText(str); if(m_strID.Find("P"))     // 此处m_strID.find("P")没有意义,只
                                      //  是为了测试能不能得到控件的值,但是当我确定能
                                      //  得到后,把m_strIDfind("P")改为str.find("P"),
                                      //  再试断点跟踪时str值又是空的。还有,我在if(
                                     // m_strID.find("P");前加上 m_strID = str.此时str
                                    //   是控件传入的值,但m_strID仍是空值。真是太奇
                                    //     怪了,大家帮我看看怎么回事?
    str.Format("P%05d",m_strID);
    m_strID  = str; //构造记录集

    rs.Open(CRecordset::forwardOnly,"select * from PERSON where ID='"+ str +"'");
    //顺序取出记录集中的资料
      

  7.   

    上面的变量m_ctrID为EDIT关联的control型变量。
      

  8.   

    m_strID是不是关联的CString类型的变量啊?
      

  9.   

    m_strID是与EDIT关联的CString类型的变量
      

  10.   

    我有点看不大明白,EDIT关联的是哪个变量?什么类型?
      

  11.   

    检查一下CChangeDlg::DoDataExchange()这个函数,看看你的m_strID是否确实跟控件关联了。