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