Udostępnij za pośrednictwem


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

Zobacz też

Informacje

Klasa CHeaderCtrl

Wykres hierarchii

HDM_HITTEST

HDHITTESTINFO