コントロールを配列化 - RとLinuxと...

RとLinuxと...


コントロールを配列化

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[]);の部分は

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++;

などとして,交互に表示させるなどができる.

ここなど参考になる.

 
Link: Programming(3126d) 日録2008年_2月(3681d)
Last-modified: 2008-02-02 (土) 16:58:46 (4069d)