CHeaderCtrl::HitTest
Determina qual item de cabeçalho, se houver, ele está localizado em um ponto específico.
int HitTest(
LPHDHITTESTINFO* phdhti
);
Parâmetros
Parâmetro |
Descrição |
---|---|
Em, [out] phdhti |
O ponteiro a estrutura de HDHITTESTINFO que especifica o ponto para testar e receber os resultados de teste. |
Valor de retorno
O índice com base zero de item de cabeçalho, se houver, na posição especificada; caso contrário, – 1.
Comentários
Este método envia a mensagem de HDM_HITTEST , que é descrita em Windows SDK.
Requisitos
Cabeçalho: afxcmn.h
Este método é suportado no Windows NT 3,51 e versões posteriores.
Exemplo
O exemplo de código a seguir define a variável, m_headerCtrl, que é usada para acessar o controle de cabeçalho atual.Esta variável é usado no exemplo a seguir.
CHeaderCtrl m_headerCtrl;
CSplitButton m_splitButton;
O exemplo de código demonstra o método de HitTest .Em uma seção anterior de este exemplo de código, nós criaremos um controle de cabeçalho com as cinco colunas.Em o entanto, você pode arrastar um separador de coluna para que a coluna não está visível.Este exemplo informa o índice da coluna se é visível e -1 se a coluna não estiver visível.
void CNVC_MFC_CHeaderCtrl_s4Dlg::OnXHittest()
{
if (controlCreated == FALSE) {
MessageBox(_T("Header control has not been created yet."));
return;
}
// Initialize HDHITTESTINFO structure.
HDHITTESTINFO hdHitIfo;
memset(&hdHitIfo, 0, sizeof(HDHITTESTINFO));
CString str;
CRect rect;
int iRetVal = -1;
for(int i = 0; i < m_headerCtrl.GetItemCount(); i++)
{
m_headerCtrl.GetItemRect(i, &rect);
hdHitIfo.pt = rect.CenterPoint();
// The hit test depends on whether the header item is visible.
iRetVal = m_headerCtrl.HitTest(&hdHitIfo);
str.AppendFormat(_T("Item = %d, Hit item = %d\n"), i, iRetVal);
}
MessageBox(str, _T("Hit test results"));
}