CString prefix="IDC_EDIT";
CString temp;
temp.Format("%d",1);
    for (int i=1;i<=50;i++)
    {
      temp.Format("%d",i);
  (CEdit*)GetDlgItem(prefix+temp)->EnableWindow(true);
    }
这个代码的问题就是GetDlgItem只能接受int型参数,而prefix+temp是CString类型。这要怎么改啊,很着急!!!

解决方案 »

  1.   

    IDC_EDIT是控件ID吗?
    控件ID应该都是int型常量啊。
    int prefix=IDC_EDIT1;
      for (int i=1;i<=50;i++)
      {
     (CEdit*)GetDlgItem(prefix+i)->EnableWindow(true);
      }
    一般控件ID都是int型的常量,上面的代码的前提得是这些控件的ID得是连续的。
      

  2.   

    我的CEdit就是连续的ID号比如IDC_EDIT1,IDC_EDIT2,IDC_EDIT3,...,IDC_EDIT50.那怎么把IDC_EDIT连接起来啊,就是说我这个程序该怎么实现呢?
      

  3.   

    连接什么啊?
    其实IDC_EDIT1就是一个常量。
    你去看一下resource.h,里面的定义一般是这样的:
    #define IDC_EDIT1 10001
    #define IDC_EDIT2 10002
    我所说的连续是指后面的10001这些必须要连续。
      

  4.   

    好的,谢谢啦,已经解决啦,就是这样的,我把#define后面的数值都改成连续的了,程序就通了,很感谢啊。