static int id_hairetu[] = {
IDC_CHECK1,
IDC_CHECK2,
IDC_CHECK3,
};

int i;
for (i = 0; i < sizeof(id_hairetu) / sizeof(id_hairetu[0]) ++i)
{
;
}

コントロールのIDをきちっと整列しておけばわざわざ配列を作らなくても
連番で処理できるってだけ。
コントロールも全部自分で作成してるなら、IDをそろえるのが楽。
共同作業とかでやってるなら、どんな変更が入るかもしれないから
ID配列みたいのをわざわざ作って確実に処理をする。

連番もいいけど、今まで見た中で最悪だった社内ライブラリ(藁)では
BOOL GetCheck(BOOL **fCheckTbl, int idStart, int idCnt);
みたいのあった。

ID連番にしなきゃいけねえだろばか
結果は結局配列で受け取るんだろばか
いちいち中でGlobalAllocすんなばか
なかんじ

くれぐれもこんなばかなのつくらんように。

Wizardの作ったコントロール名をそのまま使うのやめれ。