Partilhar via


CListCtrl::HitTest

Determina qual item de lista modo de exibição, se houver, está na posição especificada.

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

Parâmetros

  • pHitTestInfo
    Endereço de uma estrutura de LVHITTESTINFO que contém a posição fazer teste e que recebe informações sobre os resultados de teste de clique.

  • pt
    Ponto a ser testado.

  • pFlags
    Ponteiro para um número inteiro que recebe informações sobre os resultados do teste.Consulte a explicação o membro de flags estrutura de LVHITTESTINFO em Windows SDK.

Valor de retorno

O índice do item na posição especificada por pHitTestInfo, se houver, ou por -1 do contrário.

Comentários

Você pode usar LVHT_ABOVE, LVHT_BELOW, LVHT_TOLEFT, e valores de LVHT_TORIGHT de membro de flag da estrutura para determinar se rolar o conteúdo de um controle de exibição de lista.Dois de esses sinalizadores podem ser combinados, por exemplo, se a posição é acima e à esquerda da área cliente.

Você pode testar o valor de LVHT_ONITEM de membro de flag da estrutura para determinar se uma posição determinada está sobre um item de exibição de lista.Esse valor é a operação OU bit a bits em LVHT_ONITEMICON, em LVHT_ONITEMLABEL, e valores de LVHT_ONITEMSTATEICON de membro de flag estrutura.

Exemplo

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

Requisitos

Cabeçalho: afxcmn.h

Consulte também

Referência

Classe de CListCtrl

Gráfico de hierarquia

CListCtrl::GetItemPosition