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


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

7−16.アイテムのどこ(サブアイテム)をクリックしたか知る







 LVS_EX_FULLROWSELECTが指定されてればアイテムとサブアイテムを知ることができます。
 指定されてない時はアイテムが−1になるのでSubItemHitTestを使用します。

void CTest0031Dlg::OnClickList1(NMHDR* pNMHDR, LRESULT* pResult)
{//NM_CLICK
	// TODO: この位置にコントロール通知ハンドラ用のコードを追加してください
	LPNMLISTVIEW lpnmlv=(LPNMLISTVIEW)pNMHDR;
	CListCtrl *clc=(CListCtrl *)GetDlgItem(IDC_LIST1);
	LVHITTESTINFO lvh;

	TRACE("OnClickList1(%d,%d)\n",lpnmlv->iItem,lpnmlv->iSubItem);

	lvh.pt=lpnmlv->ptAction;//LVS_EX_FULLROWSELECTを指定してない時、、、
	TRACE("=%d",clc->SubItemHitTest(&lvh));
	TRACE("(%d,%d)\n",lvh.iItem,lvh.iSubItem);

	*pResult = 0;
}




Top へ戻る