CHeaderCtrl::HitTest
Určuje, které položky záhlaví, se nachází v určitém bodě.
int HitTest(
LPHDHITTESTINFO* phdhti
);
Parametry
Parametr |
Description |
---|---|
[v, out]phdhti |
Ukazatel HDHITTESTINFO struktury, která určuje bod testování a přijímá výsledky zkoušky. |
Vrácená hodnota
Z nuly vycházející index položky záhlaví určené pozice; pokud, jinak –1.
Poznámky
Tato metoda odesílá HDM_HITTEST zprávy, která je popsána v .
Požadavky
Záhlaví: afxcmn.h
Tato metoda je podporována v systému Windows NT 3.51 a vyšší.
Příklad
Následující příklad kódu definuje proměnné, m_headerCtrl , je pro aktuální hlavičku řízení přístupu.Tato proměnná se používá v následujícím příkladu.
CHeaderCtrl m_headerCtrl;
CSplitButton m_splitButton;
Následující příklad kódu ukazuje HitTest metoda.V předchozí části tohoto příkladu kódu jsme vytvořili ovládací prvek záhlaví s pěti sloupců.Však můžete přetahovat oddělovač sloupců tak, aby sloupce se nezobrazí.Tento příklad sestavy index sloupce, pokud je zobrazen a -1, pokud není zobrazen ve sloupci.
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"));
}