CHeaderCtrl::HitTest
Określa, który element nagłówka, znajduje się w określonym punkcie.
int HitTest(
LPHDHITTESTINFO* phdhti
);
Parametry
Parametr |
Opis |
---|---|
[out]phdhti |
Wskaźnik do HDHITTESTINFO strukturę, która określa punkt, aby przetestować i otrzymuje wyniki testu. |
Wartość zwracana
Wyświetlanego elementu nagłówka, jeśli istnieje w określonej pozycji; inaczej, –1.
Uwagi
Metoda ta wysyła HDM_HITTEST wiadomości, która jest opisana w Windows SDK.
Wymagania
Nagłówek: afxcmn.h
Ta metoda jest obsługiwana w systemie Windows NT 3.51 i później.
Przykład
Poniższy przykład kodu definiuje zmienną, m_headerCtrl, czyli umożliwiające dostęp do bieżącego nagłówka formantu.Ta zmienna jest używana w następnym przykładzie.
CHeaderCtrl m_headerCtrl;
CSplitButton m_splitButton;
Poniższy przykład kodu pokazuje HitTest metody.We wcześniejszej sekcji tego przykładu kodu możemy utworzyć nagłówka formantu z pięciu kolumn.Jednakże można przeciągnąć separator kolumny tak, że kolumna nie jest widoczne.W tym przykładzie raporty indeks kolumny, jeśli jest widoczny i -1, jeśli kolumna nie jest widoczny.
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"));
}