注册 登录
编程论坛 VC++/MFC

for循环里要用GetDlgItem(/*i*/),这个问题怎么解决呢?

Lyone 发布于 2011-04-22 15:56, 567 次点击
在窗口中建了多个图像组件。都分别命名为IDC_DRAW1,IDC_DRAW2,IDC_DRAW3.....
要获得这些空间的句柄,应该是用GetDlgItem(IDC_DRAW1).
但是如果用for循环来写GetDlgItem(IDC_DRAW*)这个*怎么解决呢?
for(int i=1;i<=n;i++)
{
  GetDlgItem(/*IDC_DRAW**/);
}

4 回复
#2
Lyone2011-04-22 16:09
有了一个比较傻的方法。。。
int *a=new int[n];
a[0]=GetDlgItem(IDC_DRAW1);
a[1]=GetDlgItem(IDC_DRAW2);
...
然后依次用a[0],a[1]....但是能否有更好的方法呢?
#3
debroa7232011-04-22 22:59
const int N = 2;
int a[N];
a[0]=IDC_DRAW1;
a[1]=IDC_DRAW2;
for(int i = 0 ; i < N ;++i)
{
    GetDlgItem(a[i]);
}
这个方法不是挺好的嘛!!
#4
风飘无息2011-05-03 21:11
3楼在这里的++i和i++有什么区别呢
#5
debroa7232011-05-03 22:10
没什么特别的,习惯了。
1