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


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

7−9.ListView_SetCheckStateが「定義されていない識別子です。」(C2065)になる







 ヘルプ(MSDN)の「Extended list view styles」からすると自分でListView_SetCheckStateマクロを取り込まないといけないようです。

 LVM_SETITEMSTATEを使うという手もありますが、MFCならCListCtrl::SetCheckが使えます。


例)
//プログラム中に記述します。
#ifndef ListView_SetCheckState
   #define ListView_SetCheckState(hwndLV, i, fCheck) \
      ListView_SetItemState(hwndLV, i, \
      INDEXTOSTATEIMAGEMASK((fCheck)+1), LVIS_STATEIMAGEMASK)
#endif

void CTest0031Dlg::OnButton37()
{
	// TODO: この位置にコントロール通知ハンドラ用のコードを追加してください
	//MFCの場合、、、
/*	CListCtrl *clc=(CListCtrl *)GetDlgItem(IDC_LIST1);

	clc->SetCheck(1,!clc->GetCheck(1));*/

	//SDKの場合、、、
	HWND hwn=GetDlgItem(IDC_LIST1)->m_hWnd;

	ListView_SetCheckState(hwn,1,!ListView_GetCheckState(hwn,1));
}



Top へ戻る