MFC VC++ アプリケーション Tip集 サイト


7章.CListCtrlクラス リストコントロール

7−2.チェックボックスを追加する



 以下のように拡張スタイルを指定します。(Comctl32.dll:Version 4.70)

	CListCtrl *clc=(CListCtrl *)GetDlgItem(IDC_LIST1);

	clc->SetExtendedStyle(clc->GetExtendedStyle()|LVS_EX_CHECKBOXES);


 4.70以前のバージョンでは以下のようにしていました。
 任意イメージで複数状態を表示できます。

 チェックボックスのイメージを作成します。
(1イメージ16×15/□レ:32×15の未/チェックをイメージしたビットマップ)
 それを用意したイメージリストに読み込みます。

	CImageList m_chkbox1;

	m_chkbox1.Create(IDB_CHKBOX1,16,0,RGB(0,128,128));
	m_chkbox1.SetBkColor(::GetSysColor(COLOR_WINDOW));

 SetImageListによりリストコントロールにセットします。

	((CListCtrl *)GetDlgItem(IDC_LIST1))->SetImageList(&m_chkbox1,LVSIL_STATE);

 以下のような感じにアイテムをインサートします。

	lvi.mask=LVIF_TEXT|LVIF_STATE;
	lvi.state=INDEXTOSTATEIMAGEMASK(1);
	lvi.stateMask=LVIS_STATEIMAGEMASK|LVIS_SELECTED;

	lvi.iItem=clc->GetItemCount();
	lvi.iSubItem=0;
	lvi.pszText="アイテム";
	lvi.cchTextMax=strlen(lvi.pszText);
	clc->InsertItem(&lvi);



Top へ戻る