Sdílet prostřednictvím


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"));
}

Viz také

Referenční dokumentace

Třída CHeaderCtrl

Diagram hierarchie

HDM_HITTEST

HDHITTESTINFO