比如说界面上我摆放了几十个指示灯的image控件,请问对这些控件控制时,如果总是用其ID进行引用比较麻烦,如何简便编程呢,可否将这些控件做成一个数组,调用时只需引用数组就可以了?那是否声明数组时其ID得一一设置?

解决方案 »

  1.   

    那你把更改指示灯的部分抽象成一个函数不就行了.void SetImg (int *val),这种形式,传入更改值的数组.
      

  2.   

    image[i]
    ID_IMAGE + i调用时只需引用数组就可以了.
      

  3.   

    控件的ID实际上都是整型数,因此,可以将控件的ID放在一个整型数组中,如:
    UINT nImageID[nImageCtlCount];
    要访问索引为i的控件时,只须调用GetDlgItem(nImageID[i])函数,将返回的CWnd指针转换为控件指针即可。
      

  4.   

    CStatic* pStatic[256];
    对应有CStatic bmp1;……CStatic bmp256;指定pStatic[i]=&(bmpj),以后就可以直接使用pStatic[i]来设定
      

  5.   

    和我的情况一样,把相关联的控件ID设成连续的,操作起来比较简单,但千万别把ID设成0,1,2我曾经犯过这样低级的错误(系统默认ID)
      

  6.   

    是VC吗?
    如果是的话:
    控件连接变量,可以连接到数组,但是连接要自己加,而且VC不认识该连接.
    所以要把连接放置在VC默认的区域(使用两个特殊的注释框定)外面就可以了.
      

  7.   

    控件的ID不好改哦,是VC自动生成的。而且改了后就不是In Use的状态了
      

  8.   

    改了没关系的。
    你甚至可以自己写resource.h。
      

  9.   

    可是ID是唯一能准确标识某一控件的啊,当然你可以用name.你的问题我之前也遇到过,我的解决方法是将控件信息,如ID,大小,位置。保存到一个类中,然后将类的指针保存到一个map中,想定位某一个控件是结合map和模板类即可!
      

  10.   

    如果是想盗用别人的工具条,你可以将资源文件复制到你的工程下,然后改一下resourcee.h.其他的有点想不起来了,好久没用MFC了!
      

  11.   

    CButton * button;
    for(int i=0;i<128;i++)
    {
    button=(CButton *)GetDlgItem(IDC_CHECK1+i);
    BYTE a=button->GetCheck()==BST_CHECKED?1:0;
    setdata[i/8]=setdata[i/8]|(a<<(i%8));
    }
    128个都不烦啊,在resource.h里,IDC_CHECK1的ID号是连续+1的`