コントロールを配列化 の変更点 - アールメカブ

アールメカブ


コントロールを配列化 の変更点


[[Programming]]

ダイアログベースのプログラムにボタンを三つ張り付け
CDDXControlDlg.hに CButton butt[3];を宣言しておく.
クラス名を右クリックし,型を CButton [3] 名前を butt として作成してもよい.作成したら
 void CDDXControlDlg::DoDataExchange(CDataExchange* pDX)
 {
	CDialog::DoDataExchange(pDX);
	DDX_Control(pDX, IDC_BUTTON1, butt[0]);
	DDX_Control(pDX, IDC_BUTTON2, butt[1]);
	DDX_Control(pDX, IDC_BUTTON3, butt[2]);
 }

DDX_Control(pDX, IDC_BUTTON3, butt[2]);の部分は
 INT nID   = IDCBUTTON1;
DDX_Control(pDX, IDC_BUTTON3, butt[]);の部分は
 INT nID   = IDC_BUTTON1;
 for(int i = 0; i < 3;i++){
   DDX_Control(pDX, nID + i, butt[i]);
 }
としてもいい.

これで配列が用意されたので,例えば
 for(int i = 0; i< 3; i++){
		if(i == b%3)
			butt[i].ShowWindow(1);	
		else
			butt[i].ShowWindow(0);
	}
 b++;
などとして,交互に表示させるなどができる.

[[ここ:http://rararahp.cool.ne.jp/cgi-bin/lng/vc/vclng.cgi?print+200503/05030067.txt]]など参考になる.