次の方法で共有


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_ABOVELVHT_BELOWLVHT_TOLEFTを判断するために LVHT_TORIGHT の値を使用できます。 これらのフラグの 2 つが位置がクライアント領域の上部と左側にある場合、たとえば組み合わせることができます。

構造体の flag のメンバーの LVHT_ONITEM の値の特定の位置がリスト ビューの項目にあるかどうかを調べるテストできます。 この値は、構造体の flag のメンバーの LVHT_ONITEMICONLVHT_ONITEMLABELLVHT_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

参照

関連項目

CListCtrl クラス

階層図

CListCtrl::GetItemPosition