如果我要用到很多控件(如编辑框),每个控件都关联一个变量,并且这个关联的变量是一个数组,在赋值时用一个for循环一次性完成,该如何来定义这个关联变量数组?请指教!

解决方案 »

  1.   

    把这些控件的ID定义到一段已ID_xxx开头的段里面,然后变量自己定义,然后需要更新值的时候GetDlgItemText(ID_xxx+i........)
      

  2.   

    比如你的2个CEdit,你给它们弄了m_Edit1和m_Edit2对吧?那么你定义一个CEdit myEdit[2]
    myEdit[0]=m_Edit1
    myEdit[1]=m_Edit2
    就好了
      

  3.   

    不能直接给多个编辑框关联一个数组,不过可以这样,假设你想关联CString变量,你可以先定义一个CString数组:
    CString m_strs[5];
    然后使编辑框的ID连续,比如是从106到110,那么在DoDataExchange中这样就可以了
    for (UINT id=106;id<=110;i++)
    DDX_Text(pDX,id,m_strs[id-106]);
      

  4.   

    2楼和3楼的都试过,好象不行啊。
    如果我定义5个Edit控件,在一个命令按钮中用for一次全部赋值为1、2、3、4、5;该如何操作?请指教!
      

  5.   

    事实上,不需要用控件数组对控件进行处理,利用GetNextWindow可以返回下一窗口,通过这个方法就可以实现控件的遍历了~~~~
      

  6.   

    程序代码:
    Cwnd* pWnd=GetTopWindow();
    while(pWnd!=NULL)
    {
      int i=pWnd->GetDlgCtrlID();
      ...对控件的操作...
      pWnd=pWnd->GetNextWindow();
    }
      

  7.   

    你连续在界面上放5个Edit,ID一定是相连的
    你可以到Resouce.h里面看到ID宏定义
    #define IDC_EDIT1                       1001
    #define IDC_EDIT2                       1002
    #define IDC_EDIT3                       1003
    #define IDC_EDIT4                       1004
    #define IDC_EDIT5                       1005在按钮事件中写
    for(int i=1001;i<=1005;i++)
    SetDlgItemText(i,_T("FFF"));
      

  8.   

    就算不连续,你也可以根据我上面的代码,做少许改动,自己弄个ID的int数组,就OK了
      

  9.   

    //在Resoure.h中将Edit的ID号设为连续的。
    #define IDC_EDIT1                      1001 
    #define IDC_EDIT2                      1002 
    #define IDC_EDIT3                      1003 
    #define IDC_EDIT4                      1004 
    #define IDC_EDIT5                      1005 //在cpp中
    for(i = IDC_EDIT1; i < IDC_EDIT1 + 5; i++)