各位很好,我在对话框上面放了两个编辑框控件,ID号分别为IDC_EDIT1和IDC_EDIT2,对应的变量为float m_Edit1和float m_Edit2。现在要求我在IDC_EDIT2输入数字,而IDC_EDIT1要立刻和IDC_EDIT2一样。我该怎么做。这个IDC_EDIT1显示的内容如何更新?注意我不是通过Button来触发更新的,也就是它是自动更新的。还有一个要求是,编辑框的更新只是针对IDC_EDIT1,不能因为更新影响其他的编辑框输入。我说的问题,有点类似于,当运行程序的时候,IDC_EDIT1里面自动动态的显示计算机当前的时间(秒);或者又可以理解为打开界面的时候,IDC_EDIT1自动动态的显示鼠标在整个屏幕的坐标。各位大侠帮帮我吧。

解决方案 »

  1.   

    在IDC_EDIT1消息EN_CHANGE 的处理函数中获取IDC_EDIT1的内容,然后显示到IDC_EDIT2中
      

  2.   

    void YourClass::OnEnChangeEdit1()
    {
    UpdateData();
    m_Edit2=m_Edit1;
    UpdateData(FALSE);
    }
      

  3.   

    楼上的朋友,你上面的代码我用过,不会自动更新。我主要是这句话不明白
    在IDC_EDIT1消息EN_CHANGE 的处理函数中获取IDC_EDIT1的内容,然后显示到IDC_EDIT2中
      

  4.   

    搞定了,我现在发现,处理函数的位置放的不对。比如要将IDC_EDIT2输入的内容给IDC_EDIT1,那么这个EN_CHANGE函数不能放在IDC_EDIT1里面,而是放在IDC_EDIT2里面才行。而我则是把这个响应函数放在IDC_EDIT1里面了,然后赋值一定要对,是谁赋给谁,一定不要搞错了。是m_Edit1=m_Edit2;
    而不是m_Edit2=m_Edit1;
    谢谢楼上的解答。你的方法我刚才尝试,不过没有注意。你的回答给了我提示。等于帮我解答了问题。谢谢你的帮助。
      

  5.   

    处理函数不是放在对话框类里面吗?
    void CAutoUpdateDlg::OnEnChangeEdit2()
    {
    UpdateData(TRUE);
    m_Edit1=m_Edit2;
    UpdateData(FALSE);
    }
      

  6.   

    问题补充,如果我用了一个时钟控件OCX,假设我这个控件添加到我的vc对话框上了。将ocx控件的变量设置为
    m_clock。比如m_clock.gettime()是获得系统当前时间的。那么我该怎么处理呢?就是用一个编辑框显示我系统的时间。这个时候只有一个编辑框,假设是IDC_EDIT1,其对应变量为float Edit1;下面这段程序怎么改写
    UpdateData(TRUE);
    m_Edit1=clock.gettime();//显示系统时间
    UpdateData(FALSE);
      

  7.   


    你可以用CString,将时间格式化 然后再GetDlgItem(IDC_EDIT1)->SetWindowText(XXX);
      

  8.   

    不明白啊,不知道这串东西放到哪里。因为时间ocx控件不能像普通控件一样给他添加响应函数的。即不能双击给他添加响应函数的,因为他自己本身就是一个类,而且里面很多函数。望高手解答。放到OnInitialUpdate()又不行。
    UpdateData(TRUE);
    m_Edit1=clock.gettime();//显示系统时间
    UpdateData(FALSE);