对话框中有10个CEDIT;如果要对这10个编辑框赋值。
1 关联10个变量
2 动态获取句柄后进行赋值到底应该如何给控件赋值??关联太多变量好不好呢?

解决方案 »

  1.   

    都可以的。要方便用关联变量,要效率还是GetDlgItem。
    关联变量多了会导致UpdateData变慢,不过基本可以忽略。
      

  2.   

    在现在机器配置飞速发展的情况下,程序的健壮性比程序的效率更重要,要是我的话就用GetDlgItem,当然关联变量也可以,无庸置疑。
      

  3.   

    建议用UpdateData,比如第一个关联的变量为CString m_sEdit1;
    可以这样赋值:
    m_sEdit1 = _T("test");
    UpdateData(FALSE);
      

  4.   

    曾经做过一个东西界面上有几十个EDIT,当时因时间紧就一个一个的关联变量。
    后来看到一N人的博客介绍了一种简单正规的处理方法(当时没试验,现在也忘了)不用关联变量。
      

  5.   

    如果要求读取操作,最好是添加变量,如果给值,不取值,用SetDlgItemText
      

  6.   

    控件多的时候你可以用ON_CONTROL_RANGE
    找到控件间的联系
      

  7.   

    直接在需要的时候取或设。
    GetDlgItemText(IDC_EDIT_n,str)
    SetDlgItemText(IDC_EDIT_n,str)
    另外一种
    GetDlgItem(IDC_EDIT_n)->GetWindowText(str)
    GetDlgItem(IDC_EDIT_n)->SetWindowText(str)前一种是后一种的综合。
      

  8.   

    使用第2种更快,关联变量要对各个控件赋值操作不停更新,容易出错,
    GetDlgItem(...)->GetWindowText(str)
    GetDlgItem(...)->SetWindowText(str)
      

  9.   

    变量太多可以重载CEdit 10个不多不少,自己关联也可以 速度不影响
      

  10.   

    GetDlgItem(IDC_EDIT_n)->SetWindowText(str)
      

  11.   

    ON_COMMAND_RANGE http://msdn.microsoft.com/en-us/library/9ab3z9tb(v=vs.80).aspx