Partilhar via


CListCtrl::HitTest

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

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

Parâmetros

  • pHitTestInfo
    Endereço de um LVHITTESTINFO estrutura que contém a posição de teste de visitas e que recebe informações sobre os resultados do teste de ocorrência.

  • 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 do sinalizadores membro do LVHITTESTINFO estrutura o Windows SDK.

Valor de retorno

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

Comentários

Você pode usar o LVHT_ABOVE, LVHT_BELOW, LVHT_TOLEFT, e LVHT_TORIGHT valores da estrutura sinalizar membro para determinar se deve rolar o Sumário do controle de exibição de lista.Dois desses sinalizadores podem ser combinadas, por exemplo, se a posição estiver acima e à esquerda da área de cliente.

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

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 CListCtrl

Gráfico de hierarquia

CListCtrl::GetItemPosition

Outros recursos

CListCtrl membros