CHeaderCtrl::HitTest
Determina que el elemento de encabezado, si existe, se encuentra en un punto especificado.
int HitTest(
LPHDHITTESTINFO* phdhti
);
Parámetros
Parámetro |
Descripción |
---|---|
[in, out] phdhti |
El puntero a una estructura de HDHITTESTINFO que especifique el punto para probar y recibe los resultados de pruebas. |
Valor devuelto
El índice de base cero del elemento de encabezado, si existe, en la posición especificada; si no, – 1.
Comentarios
este método envía el mensaje de HDM_HITTEST , que se describe en Windows SDK.
Requisitos
encabezado: afxcmn.h
Este método se admite en Windows NT 3,51 y posterior.
Ejemplo
El ejemplo de código siguiente define la variable, m_headerCtrl, que se utiliza para tener acceso al control de encabezado actual. esta variable se utiliza en el ejemplo siguiente.
CHeaderCtrl m_headerCtrl;
CSplitButton m_splitButton;
En el ejemplo de código siguiente se muestra el método HitTest. en una sección anterior de este ejemplo de código, creamos un control de encabezado con cinco columnas. Sin embargo, puede arrastrar un separador de columna de modo que la columna no está visible. Informes de este ejemplo el índice de la columna si está visible y -1 si la columna no está visible.
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"));
}