Partager via


CListCtrl::HitTest

Détermine que l'élément de l'affichage de liste, le cas échéant, est à une position spécifiée.

int HitTest( 
   LVHITTESTINFO* pHitTestInfo  
) const; 
int HitTest( 
   CPoint pt, 
   UINT* pFlags = NULL  
) const;

Paramètres

  • pHitTestInfo
    Adresse d'une structure de LVHITTESTINFO contenant la position du test de positionnement et qui reçoit des informations sur les résultats du test de positionnement.

  • pt
    Point à tester.

  • pFlags
    Pointeur vers un entier qui reçoit des informations sur les résultats du test. Consultez l'explication du membre de indicateurs de la structure de LVHITTESTINFO dans Kit de développement logiciel Windows.

Valeur de retour

Index de l'élément à la position spécifiée par pHitTestInfo, le cas échéant, ou -1 sinon.

Notes

Vous pouvez utiliser LVHT_ABOVE, LVHT_BELOW, LVHT_TOLEFT, et les valeurs d' LVHT_TORIGHT du membre de flag de la structure pour déterminer si faire défiler le contenu d'un contrôle liste view. Deux de ces indicateurs peuvent être combinés, par exemple, si la position se trouve au-dessus et à gauche de la zone cliente.

Vous pouvez déterminer la valeur de LVHT_ONITEM du membre de flag de la structure pour déterminer si une position donnée est sur un élément de l'affichage de liste. Cette valeur est une opération de bits OR sur LVHT_ONITEMICON, LVHT_ONITEMLABEL, et les valeurs d' LVHT_ONITEMSTATEICON du membre de flag de la structure.

Exemple

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;
}

Configuration requise

Header: afxcmn.h

Voir aussi

Référence

CListCtrl, classe

Graphique de la hiérarchie

CListCtrl::GetItemPosition