CListCtrl::HitTest
どのリスト ビューの項目がある場合、指定された位置にあるかを判断します。
int HitTest(
LVHITTESTINFO* pHitTestInfo
) const;
int HitTest(
CPoint pt,
UINT* pFlags = NULL
) const;
パラメーター
pHitTestInfo
ヒット テストを位置を含むヒット テストの結果に関する情報を受け取り、LVHITTESTINFO の構造体のアドレス。pt
テストされる点。pFlags
テストの結果に関する情報を受け取る整数へのポインター。 Windows SDKの LVHITTESTINFO の構造体の [フラグ] のメンバーの説明を参照してください。
戻り値
pHitTestInfoある場合、または -1 で指定した位置の項目のインデックス別の方法で。
解説
かどうかをリスト ビュー コントロールのコンテンツをスクロールする構造体の flag のメンバーの LVHT_ABOVE、LVHT_BELOW、LVHT_TOLEFTを判断するために LVHT_TORIGHT の値を使用できます。 これらのフラグの 2 つが位置がクライアント領域の上部と左側にある場合、たとえば組み合わせることができます。
構造体の flag のメンバーの LVHT_ONITEM の値の特定の位置がリスト ビューの項目にあるかどうかを調べるテストできます。 この値は、構造体の flag のメンバーの LVHT_ONITEMICON、LVHT_ONITEMLABELと LVHT_ONITEMSTATEICON の値の、ビットごとの OR 演算です。
使用例
void CListCtrlDlg::OnRClick(NMHDR* pNMHDR, LRESULT* pResult)
{
LPNMITEMACTIVATE pia = (LPNMITEMACTIVATE)pNMHDR;
CPoint point(pia->ptAction);
// Select the item the user clicked on.
UINT uFlags;
int nItem = m_myListCtrl.HitTest(point, &uFlags);
if (uFlags & LVHT_ONITEMLABEL)
{
m_myListCtrl.SetItem(nItem, 0, LVIF_STATE, NULL, 0, LVIS_SELECTED,
LVIS_SELECTED, 0);
}
*pResult = 0;
}
必要条件
ヘッダー: afxcmn.h