Share via


CHeaderCtrl-klasse

Opmerking

De Microsoft Foundation Classes-bibliotheek (MFC) wordt nog steeds ondersteund. We voegen echter geen functies meer toe of werken de documentatie bij.

Biedt de functionaliteit van het algemene besturingselement voor Windows-headers.

Syntaxis

class CHeaderCtrl : public CWnd

Leden

Openbare constructors

Naam Description
CHeaderCtrl::CHeaderCtrl Maakt een CHeaderCtrl object.

Openbare methoden

Naam Description
CHeaderCtrl::ClearAllFilters Hiermee wist u alle filters voor een header-besturingselement.
CHeaderCtrl::ClearFilter Hiermee wist u het filter voor een header-besturingselement.
CHeaderCtrl::Maken Hiermee maakt u een besturingselement voor kopteksten en koppelt u dit aan een CHeaderCtrl object.
CHeaderCtrl::CreateDragImage Hiermee maakt u een transparante versie van de afbeelding van een item in een header-besturingselement.
CHeaderCtrl::CreateEx Hiermee maakt u een besturingselement voor kopteksten met de opgegeven uitgebreide Stijlen van Windows en koppelt u dit aan een CListCtrl object.
CHeaderCtrl::D eleteItem Hiermee verwijdert u een item uit een besturingselement voor kopteksten.
CHeaderCtrl::D rawItem Hiermee tekent u het opgegeven item van een header-besturingselement.
CHeaderCtrl::EditFilter Hiermee begint u het opgegeven filter van een header-besturingselement te bewerken.
CHeaderCtrl::GetBitmapMargin Hiermee wordt de breedte van de marge van een bitmap in een koptekst besturingselement opgehaald.
CHeaderCtrl::GetFocusedItem Hiermee haalt u de id op van het item in het huidige koptekstbeheer met de focus.
CHeaderCtrl::GetImageList Hiermee haalt u de ingang op van een afbeeldingslijst die wordt gebruikt voor het tekenen van koptekstitems in een koptekst besturingselement.
CHeaderCtrl::GetItem Hiermee haalt u informatie over een item in een header-besturingselement op.
CHeaderCtrl::GetItemCount Hiermee haalt u het aantal items in een koptekst besturingselement op.
CHeaderCtrl::GetItemDropDownRect Hiermee haalt u de informatie over de begrenzingsrechthoek voor de opgegeven vervolgkeuzelijst op in een koptekstbesturingselement.
CHeaderCtrl::GetItemRect Hiermee haalt u de begrenzingsrechthoek voor een bepaald item in een koptekst besturingselement op.
CHeaderCtrl::GetOrderArray Hiermee haalt u de volgorde van links naar rechts van items in een koptekstbesturingselement op.
CHeaderCtrl::GetOverflowRect Hiermee haalt u de begrenzingsrechthoek van de overloopknop voor het huidige header-besturingselement op.
CHeaderCtrl::HitTest Bepaalt welk kopitem, indien aanwezig, zich op een opgegeven punt bevindt.
CHeaderCtrl::InsertItem Hiermee voegt u een nieuw item in een koptekst besturingselement in.
CHeaderCtrl::Layout Hiermee haalt u de grootte en positie van een header-besturingselement op binnen een bepaalde rechthoek.
CHeaderCtrl::OrderToIndex Haalt de indexwaarde voor een item op op basis van de volgorde in het koptekstbesturingselement.
CHeaderCtrl::SetBitmapMargin Hiermee stelt u de breedte van de marge van een bitmap in een koptekst besturingselement in.
CHeaderCtrl::SetFilterChangeTimeout Hiermee stelt u het time-outinterval in tussen de tijd dat een wijziging plaatsvindt in de filterkenmerken en het plaatsen van een HDN_FILTERCHANGE melding.
CHeaderCtrl::SetFocusedItem Hiermee stelt u de focus in op een opgegeven koptekstitem in het huidige koptekstbeheer.
CHeaderCtrl::SetHotDivider Hiermee wijzigt u de scheiding tussen koptekstitems om een handmatig slepen en neerzetten van een kopitem aan te geven.
CHeaderCtrl::SetImageList Hiermee wijst u een lijst met afbeeldingen toe aan een koptekst besturingselement.
CHeaderCtrl::SetItem Hiermee stelt u de kenmerken van het opgegeven item in een header-besturingselement in.
CHeaderCtrl::SetOrderArray Hiermee stelt u de volgorde van links naar rechts van items in een koptekstbesturingselement in.

Opmerkingen

Een besturingselement voor kopteksten is een venster dat meestal boven een set kolommen met tekst of getallen wordt geplaatst. Deze bevat een titel voor elke kolom en kan worden onderverdeeld in delen. De gebruiker kan de scheidingstekens slepen die de onderdelen scheiden om de breedte van elke kolom in te stellen. Zie Koptekstbesturingselementen voor een afbeelding van een koptekstbesturingselement.

Dit besturingselement (en daarom de CHeaderCtrl klasse) is alleen beschikbaar voor programma's die worden uitgevoerd onder Windows 95/98 en Windows NT versie 3.51 en hoger.

De functionaliteit die is toegevoegd voor algemene besturingselementen voor Windows 95/Internet Explorer 4.0, omvat het volgende:

  • Aangepaste volgorde van kopitem.

  • Koptekstitem slepen en neerzetten, voor het opnieuw ordenen van koptekstitems. Gebruik de stijl HDS_DRAGDROP wanneer u het CHeaderCtrl object maakt.

  • Koptekst van kolomtekst kan voortdurend worden weergegeven tijdens het wijzigen van het formaat van de kolom. Gebruik de stijl HDS_FULLDRAG wanneer u een CHeaderCtrl object maakt.

  • Dynamische tracering van kopteksten, waarmee het kopitem wordt gemarkeerd wanneer de aanwijzer erboven beweegt. Gebruik de stijl HDS_HOTTRACK wanneer u het CHeaderCtrl object maakt.

  • Ondersteuning voor afbeeldingenlijst. Koptekstitems kunnen afbeeldingen bevatten die zijn opgeslagen in een CImageList object of tekst.

Zie Besturingselementen en CHeaderCtrl gebruiken voor meer informatie over het gebruikCHeaderCtrl.

Overnamehiërarchie

CObject

CCmdTarget

CWnd

CHeaderCtrl

Requirements

Koptekst: afxcmn.h

CHeaderCtrl::CHeaderCtrl

Maakt een CHeaderCtrl object.

CHeaderCtrl();

Example

// Declare a local CHeaderCtrl object.
CHeaderCtrl myHeaderCtrl;

// Declare a dynamic CHeaderCtrl object.
CHeaderCtrl *pmyHeaderCtrl = new CHeaderCtrl;

CHeaderCtrl::ClearAllFilters

Hiermee wist u alle filters voor een header-besturingselement.

BOOL ClearAllFilters();

Retourwaarde

WAAR als deze methode is geslaagd; anders, ONWAAR.

Opmerkingen

Met deze methode wordt het gedrag van het Win32-bericht geïmplementeerd HDM_CLEARFILTER met een kolomwaarde van -1, zoals beschreven in de Windows SDK.

Example

m_myHeaderCtrl.ClearAllFilters();

CHeaderCtrl::ClearFilter

Hiermee wist u het filter voor een header-besturingselement.

BOOL ClearFilter(int nColumn);

Parameterwaarden

nColumn
Kolomwaarde die aangeeft welk filter moet worden gewist.

Retourwaarde

WAAR als deze methode is geslaagd; anders, ONWAAR.

Opmerkingen

Met deze methode wordt het gedrag van het Win32-bericht HDM_CLEARFILTER geïmplementeerd, zoals beschreven in de Windows SDK.

Example

int iFilt = m_myHeaderCtrl.ClearFilter(1);

CHeaderCtrl::Maken

Hiermee maakt u een besturingselement voor kopteksten en koppelt u dit aan een CHeaderCtrl object.

virtual BOOL Create(
    DWORD dwStyle,
    const RECT& rect,
    CWnd* pParentWnd,
    UINT nID);

Parameterwaarden

dwStyle-
Hiermee geeft u de stijl van het koptekst besturingselement. Zie Koptekstbesturingsstijlen in de Windows SDK voor een beschrijving van koptekstbesturingsstijlen.

Rect
Hiermee geeft u de grootte en positie van het header-besturingselement. Het kan een CRect-object of een RECT-structuur zijn.

pParentWnd
Hiermee geeft u het bovenliggende venster van het header-besturingselement, meestal een CDialog. Deze mag niet NULL zijn.

nID-
Hiermee geeft u de id van het header-besturingselement op.

Retourwaarde

Niet-nul als initialisatie is geslaagd; anders nul.

Opmerkingen

U maakt een CHeaderCtrl object in twee stappen. Roep eerst de constructor aan en roep Createvervolgens aan, waarmee het besturingselement voor de header wordt gemaakt en aan het CHeaderCtrl object wordt gekoppeld.

Naast de stijlen voor kopteksten kunt u de volgende algemene besturingsstijlen gebruiken om te bepalen hoe de koptekst van besturingselementen wordt geplaatst en de grootte ervan wijzigt (zie Algemene besturingsstijlen voor meer informatie):

  • CCS_BOTTOM Zorgt ervoor dat het besturingselement zich onder aan het clientgebied van het bovenliggende venster bevindt en de breedte gelijk is aan de breedte van het bovenliggende venster.

  • CCS_NODIVIDER Voorkomt dat een markering van twee pixels boven aan het besturingselement wordt getekend.

  • CCS_NOMOVEY zorgt ervoor dat het besturingselement de grootte van het besturingselement horizontaal, maar niet verticaal verplaatst als reactie op een WM_SIZE bericht. Als de CCS_NORESIZE stijl wordt gebruikt, is deze stijl niet van toepassing. Besturingselementen voor kopteksten hebben deze stijl standaard.

  • CCS_NOPARENTALIGN Voorkomt dat het besturingselement automatisch naar de boven- of onderkant van het bovenliggende venster wordt verplaatst. In plaats daarvan behoudt het besturingselement de positie in het bovenliggende venster, ondanks wijzigingen in de grootte van het bovenliggende venster. Als de stijl CCS_TOP of CCS_BOTTOM ook wordt gebruikt, wordt de hoogte aangepast aan de standaardwaarde, maar blijft de positie en breedte ongewijzigd.

  • CCS_NORESIZE Voorkomt dat het besturingselement de standaardbreedte en -hoogte gebruikt bij het instellen van de oorspronkelijke grootte of een nieuwe grootte. In plaats daarvan gebruikt het besturingselement de breedte en hoogte die is opgegeven in de aanvraag voor het maken of aanpassen van de grootte.

  • CCS_TOP Zorgt ervoor dat het besturingselement boven aan het clientgebied van het bovenliggende venster wordt geplaatst en de breedte gelijk is aan de breedte van het bovenliggende venster.

U kunt ook de volgende vensterstijlen toepassen op een besturingselement voor kopteksten (zie Vensterstijlen voor meer informatie):

  • WS_CHILD Maakt een onderliggend venster. Kan niet worden gebruikt met de stijl WS_POPUP.

  • WS_VISIBLE Maakt een venster dat in eerste instantie zichtbaar is.

  • WS_DISABLED Maakt een venster dat in eerste instantie is uitgeschakeld.

  • WS_GROUP Hiermee geeft u het eerste besturingselement op van een groep besturingselementen waarin de gebruiker van het ene besturingselement naar het volgende kan gaan met de pijltoetsen. Alle besturingselementen die zijn gedefinieerd met de stijl WS_GROUP na het eerste besturingselement behoren tot dezelfde groep. Met het volgende besturingselement met de stijl WS_GROUP eindigt de stijlgroep en wordt de volgende groep gestart (dat wil gezegd, één groep eindigt op de plaats waar de volgende begint).

  • WS_TABSTOP Geeft een van de besturingselementen aan waarmee de gebruiker kan navigeren met behulp van de TAB-toets. Met de TAB-toets wordt de gebruiker verplaatst naar het volgende besturingselement dat is opgegeven door de stijl WS_TABSTOP.

Als u uitgebreide vensterstijlen wilt gebruiken met uw besturingselement, roept u CreateEx aan in plaats van Create.

Example

// pParentWnd is a pointer to the parent window.
m_myHeaderCtrl.Create(WS_CHILD | WS_VISIBLE | HDS_HORZ,
                      CRect(10, 10, 600, 50), pParentWnd, 1);

CHeaderCtrl::CreateEx

Hiermee maakt u een besturingselement (een onderliggend venster) en koppelt u dit aan het CHeaderCtrl object.

virtual BOOL CreateEx(
    DWORD dwExStyle,
    DWORD dwStyle,
    const RECT& rect,
    CWnd* pParentWnd,
    UINT nID);

Parameterwaarden

dwExStyle
Hiermee geeft u de uitgebreide stijl van het besturingselement dat wordt gemaakt. Zie de dwExStyle-parameter voor CreateWindowEx in de Windows SDK voor een lijst met uitgebreide Windows-stijlen.

dwStyle-
De stijl van het besturingselement voor de koptekst. Zie Koptekstbesturingsstijlen in de Windows SDK voor een beschrijving van koptekstbesturingsstijlen. Zie Maken voor een lijst met extra stijlen.

Rect
Een verwijzing naar een RECT-structuur die de grootte en positie van het venster beschrijft dat moet worden gemaakt, in clientcoördinaten van pParentWnd.

pParentWnd
Een aanwijzer naar het venster dat het bovenliggende besturingselement is.

nID-
De id van het onderliggende venster van het besturingselement.

Retourwaarde

Niet-nul indien geslaagd; anders 0.

Opmerkingen

Gebruik CreateEx in plaats van Create uitgebreide Windows-stijlen toe te passen, die zijn opgegeven door het voorwoord van de uitgebreide stijl van Windows WS_EX_.

CHeaderCtrl::CreateDragImage

Hiermee maakt u een transparante versie van de afbeelding van een item in een header-besturingselement.

CImageList* CreateDragImage(int nIndex);

Parameterwaarden

nIndex
De op nul gebaseerde index van het item in het koptekstbesturingselement. De afbeelding die aan dit item is toegewezen, is de basis voor de transparante afbeelding.

Retourwaarde

Een aanwijzer naar een CImageList-object als dit lukt; anders NULL. De geretourneerde lijst bevat slechts één afbeelding.

Opmerkingen

Deze lidfunctie implementeert het gedrag van het Win32-bericht HDM_CREATEDRAGIMAGE, zoals beschreven in de Windows SDK. Het wordt geleverd ter ondersteuning van het slepen en neerzetten van koptekstitems.

Het CImageList object waarnaar de geretourneerde aanwijzer wijst, is een tijdelijk object en wordt verwijderd in de volgende niet-actieve verwerking.

CHeaderCtrl::D eleteItem

Hiermee verwijdert u een item uit een besturingselement voor kopteksten.

BOOL DeleteItem(int nPos);

Parameterwaarden

nPos
Hiermee geeft u de op nul gebaseerde index van het item dat moet worden verwijderd.

Retourwaarde

Niet-nul indien geslaagd; anders 0.

Example

int nCount = m_myHeaderCtrl.GetItemCount();

// Delete all of the items.
for (int i = 0; i < nCount; i++)
{
   m_myHeaderCtrl.DeleteItem(0);
}

CHeaderCtrl::D rawItem

Aangeroepen door het framework wanneer een visueel aspect van een eigenaar-tekenkopbesturingselement verandert.

virtual void DrawItem(LPDRAWITEMSTRUCT lpDrawItemStruct);

Parameterwaarden

lpDrawItemStruct
Een aanwijzer naar een DRAWITEMSTRUCT-structuur die het item beschrijft dat moet worden geschilderd.

Opmerkingen

Het itemAction lid van de DRAWITEMSTRUCT structuur definieert de tekenactie die moet worden uitgevoerd.

Deze lidfunctie doet standaard niets. Overschrijf deze lidfunctie om tekening te implementeren voor een eigenaar-tekenobject CHeaderCtrl .

De toepassing moet alle GDI-objecten (Graphics Device Interface) herstellen die zijn geselecteerd voor de weergavecontext die is opgegeven in lpDrawItemStruct voordat deze lidfunctie wordt beëindigd.

Example

// NOTE: CMyHeaderCtrl is a class derived from CHeaderCtrl.
// The CMyHeaderCtrl object was created as follows:
//
//   CMyHeaderCtrl m_myHeader;
//   myHeader.Create(WS_CHILD | WS_VISIBLE | HDS_HORZ,
//      CRect(10, 10, 600, 50), pParentWnd, 1);

// This example implements the DrawItem method for a
// CHeaderCtrl-derived class that draws every item as a
// 3D button using the text color red.
void CMyHeaderCtrl::DrawItem(LPDRAWITEMSTRUCT lpDrawItemStruct)
{
   // This code only works with header controls.
   ASSERT(lpDrawItemStruct->CtlType == ODT_HEADER);

   HDITEM hdi;
   const int c_cchBuffer = 256;
   TCHAR lpBuffer[c_cchBuffer];

   hdi.mask = HDI_TEXT;
   hdi.pszText = lpBuffer;
   hdi.cchTextMax = c_cchBuffer;

   GetItem(lpDrawItemStruct->itemID, &hdi);

   // Draw the button frame.
   ::DrawFrameControl(lpDrawItemStruct->hDC,
                      &lpDrawItemStruct->rcItem, DFC_BUTTON, DFCS_BUTTONPUSH);

   // Draw the items text using the text color red.
   COLORREF crOldColor = ::SetTextColor(lpDrawItemStruct->hDC,
                                        RGB(255, 0, 0));
   ::DrawText(lpDrawItemStruct->hDC, lpBuffer,
              (int)_tcsnlen(lpBuffer, c_cchBuffer),
              &lpDrawItemStruct->rcItem, DT_SINGLELINE | DT_VCENTER | DT_CENTER);
   ::SetTextColor(lpDrawItemStruct->hDC, crOldColor);
}

CHeaderCtrl::EditFilter

Begint met het bewerken van het opgegeven filter van een headerbesturingselement.

BOOL EditFilter(
    int nColumn,
    BOOL bDiscardChanges);

Parameterwaarden

nColumn
De kolom die u wilt bewerken.

bDiscardChanges
Een waarde die aangeeft hoe de bewerkingswijzigingen van de gebruiker moeten worden verwerkt als de gebruiker bezig is met het bewerken van het filter wanneer het HDM_EDITFILTER bericht wordt verzonden.

Geef TRUE op om de wijzigingen die door de gebruiker zijn aangebracht, te negeren of ONWAAR om de wijzigingen te accepteren die door de gebruiker zijn aangebracht.

Retourwaarde

WAAR als deze methode is geslaagd; anders, ONWAAR.

Opmerkingen

Met deze methode wordt het gedrag van het Win32-bericht HDM_EDITFILTER geïmplementeerd, zoals beschreven in de Windows SDK.

Example

int iFilter = m_myHeaderCtrl.EditFilter(1, TRUE);

CHeaderCtrl::GetBitmapMargin

Hiermee wordt de breedte van de marge van een bitmap in een koptekst besturingselement opgehaald.

int GetBitmapMargin() const;

Retourwaarde

De breedte van de bitmapmarge in pixels.

Opmerkingen

Deze lidfunctie implementeert het gedrag van het Win32-bericht HDM_GETBITMAPMARGIN, zoals beschreven in de Windows SDK.

Example

int iMargin = m_myHeaderCtrl.GetBitmapMargin();

CHeaderCtrl::GetFocusedItem

Hiermee haalt u de index op van het item met de focus in het huidige koptekstbeheer.

int GetFocusedItem() const;

Retourwaarde

De op nul gebaseerde index van het kopitem met de focus.

Opmerkingen

Met deze methode wordt het HDM_GETFOCUSEDITEM bericht verzonden, dat wordt beschreven in de Windows SDK.

Example

In het eerste codevoorbeeld wordt de variabele gedefinieerd, m_headerCtrldie wordt gebruikt voor toegang tot het huidige header-besturingselement. Deze variabele wordt gebruikt in het volgende voorbeeld.

CHeaderCtrl m_headerCtrl;
CSplitButton m_splitButton;

In het volgende codevoorbeeld ziet u de SetFocusedItem en GetFocusedItem methoden. In een eerdere sectie van de code hebben we een besturingselement voor kopteksten gemaakt met vijf kolommen. U kunt echter een kolomscheidingsteken slepen, zodat de kolom niet zichtbaar is. In het volgende voorbeeld wordt de laatste kolomkop als focusitem ingesteld en bevestigd.

void CNVC_MFC_CHeaderCtrl_s4Dlg::OnXSetfocuseditem()
{
   if (controlCreated == FALSE)
   {
      MessageBox(_T("Header control has not been created yet."));
      return;
   }

   // Check that we get the value we set.
   int item = m_headerCtrl.GetItemCount() - 1;
   m_headerCtrl.SetFocusedItem(item);
   int itemGet = m_headerCtrl.GetFocusedItem();
   CString str = _T("Set: focused item = %d\nGet: focused item = %d");
   str.Format(str, item, itemGet);
   MessageBox(str, _T("Set/GetFocused Item"));
}

CHeaderCtrl::GetImageList

Hiermee haalt u de ingang op van een afbeeldingslijst die wordt gebruikt voor het tekenen van koptekstitems in een koptekst besturingselement.

CImageList* GetImageList() const;

Retourwaarde

Een aanwijzer naar een CImageList-object .

Opmerkingen

Deze lidfunctie implementeert het gedrag van het Win32-bericht HDM_GETIMAGELIST, zoals beschreven in de Windows SDK. Het CImageList object waarnaar de geretourneerde aanwijzer wijst, is een tijdelijk object en wordt verwijderd in de volgende niet-actieve verwerking.

Example

// The new image list of the header control.
m_HeaderImages.Create(16, 16, ILC_COLOR, 2, 2);
m_HeaderImages.Add(AfxGetApp()->LoadIcon(IDI_ICON1));
m_HeaderImages.Add(AfxGetApp()->LoadIcon(IDI_ICON2));
m_HeaderImages.Add(AfxGetApp()->LoadIcon(IDI_ICON3));

ASSERT(m_myHeaderCtrl.GetImageList() == NULL);

m_myHeaderCtrl.SetImageList(&m_HeaderImages);
ASSERT(m_myHeaderCtrl.GetImageList() == &m_HeaderImages);

CHeaderCtrl::GetItem

Hiermee wordt informatie opgehaald over een item voor koptekstbeheer.

BOOL GetItem(
    int nPos,
    HDITEM* pHeaderItem) const;

Parameterwaarden

nPos
Hiermee geeft u de op nul gebaseerde index van het item dat moet worden opgehaald.

pHeaderItem
Wijs een HDITEM-structuur aan die het nieuwe item ontvangt. Deze structuur wordt gebruikt met de InsertItem functies en SetItem leden. Alle vlaggen die in het mask element zijn ingesteld, zorgen ervoor dat waarden in de bijbehorende elementen correct worden ingevuld wanneer ze worden geretourneerd. Als het mask element is ingesteld op nul, zijn waarden in de andere structuurelementen betekenisloos.

Retourwaarde

Niet-nul indien geslaagd; anders 0.

Example

LPCTSTR lpszmyString = _T("column 2");
LPCTSTR lpszmyString2 = _T("vertical 2");

// Find the item whose text matches lpszmyString, and
// replace it with lpszmyString2.
int i, nCount = m_myHeaderCtrl.GetItemCount();
HDITEM hdi;
enum
{
   sizeOfBuffer = 256
};
TCHAR lpBuffer[sizeOfBuffer];
bool fFound = false;

hdi.mask = HDI_TEXT;
hdi.pszText = lpBuffer;
hdi.cchTextMax = sizeOfBuffer;

for (i = 0; !fFound && (i < nCount); i++)
{
   m_myHeaderCtrl.GetItem(i, &hdi);

   if (_tcsncmp(hdi.pszText, lpszmyString, sizeOfBuffer) == 0)
   {
      _tcscpy_s(hdi.pszText, sizeOfBuffer, lpszmyString2);
      m_myHeaderCtrl.SetItem(i, &hdi);
      fFound = true;
   }
}

CHeaderCtrl::GetItemCount

Hiermee haalt u het aantal items in een koptekst besturingselement op.

int GetItemCount() const;

Retourwaarde

Aantal koptekstbeheeritems indien geslaagd; anders - 1.

Example

Zie het voorbeeld voor CHeaderCtrl::D eleteItem.

CHeaderCtrl::GetItemDropDownRect

Hiermee haalt u de begrenzingsrechthoek van de vervolgkeuzelijst voor een koptekstitem op in het huidige koptekstbesturingselement.

BOOL GetItemDropDownRect(
    int iItem,
    LPRECT lpRect) const;

Parameterwaarden

iItem
[in] Op nul gebaseerde index van een kopitem waarvan de stijl HDF_SPLITBUTTON. Zie het lid van de fmtHDITEM-structuur voor meer informatie.

lpRect
[uit] Wijs een RECT-structuur aan om de begrenzingsrechthoekinformatie te ontvangen.

Retourwaarde

WAAR als deze functie is geslaagd; anders, ONWAAR.

Opmerkingen

Met deze methode wordt het HDM_GETITEMDROPDOWNRECT bericht verzonden, dat wordt beschreven in de Windows SDK.

Example

In het eerste codevoorbeeld wordt de variabele gedefinieerd, m_headerCtrldie wordt gebruikt voor toegang tot het huidige header-besturingselement. Deze variabele wordt gebruikt in het volgende voorbeeld.

CHeaderCtrl m_headerCtrl;
CSplitButton m_splitButton;

In het volgende codevoorbeeld ziet u de GetItemDropDownRect methode. In een eerdere sectie van de code hebben we een besturingselement voor kopteksten gemaakt met vijf kolommen. In het volgende codevoorbeeld wordt een 3D-rechthoek rond de locatie op de eerste kolom tekend die is gereserveerd voor de vervolgkeuzeknop voor de koptekst.

void CNVC_MFC_CHeaderCtrl_s4Dlg::OnXGetitemdropdownrect()
{
   if (controlCreated == FALSE)
   {
      MessageBox(_T("Header control has not been created yet."));
      return;
   }

   // Get the dropdown rect for the first column.
   CRect rect;
   BOOL bRetVal = m_headerCtrl.GetItemDropDownRect(0, &rect);
   if (bRetVal == TRUE)
   {
      // Draw around the dropdown rect a rectangle that has red
      // left and top sides, and blue right and bottom sides.
      CDC *pDC = m_headerCtrl.GetDC();
      pDC->Draw3dRect(rect, RGB(255, 0, 0), RGB(0, 0, 255));
   }
}

CHeaderCtrl::GetItemRect

Hiermee haalt u de begrenzingsrechthoek voor een bepaald item in een koptekst besturingselement op.

BOOL GetItemRect(
    int nIndex,
    LPRECT lpRect) const;

Parameterwaarden

nIndex
De op nul gebaseerde index van het item voor headerbeheer.

lpRect
Een aanwijzer naar het adres van een RECT-structuur die de informatie over de begrenzingsrechthoek ontvangt.

Retourwaarde

Niet-nul indien geslaagd; anders 0.

Opmerkingen

Met deze methode wordt het gedrag van het Win32-bericht geïmplementeerd HDM_GETITEMRECT, zoals beschreven in de Windows SDK.

CHeaderCtrl::GetOrderArray

Hiermee haalt u de volgorde van links naar rechts van items in een koptekstbesturingselement op.

BOOL GetOrderArray(
    LPINT piArray,
    int iCount);

Parameterwaarden

piArray
Een aanwijzer naar het adres van een buffer die de indexwaarden van de items in het koptekstbesturingselement ontvangt, in de volgorde waarin deze van links naar rechts worden weergegeven.

iCount
Het aantal items voor koptekstbeheer. Moet niet-negatief zijn.

Retourwaarde

Niet-nul indien geslaagd; anders 0.

Opmerkingen

Deze lidfunctie implementeert het gedrag van het Win32-bericht HDM_GETORDERARRAY, zoals beschreven in de Windows SDK. Het wordt geleverd ter ondersteuning van het bestellen van koptekstitems.

Example

// Reverse the order of the items in the header control.
// (i.e. make the first item the last one, the last item
// the first one, and so on ...).
int nCount = m_myHeaderCtrl.GetItemCount();
LPINT pnOrder = (LPINT)malloc(nCount * sizeof(int));
ASSERT(pnOrder != NULL);
if (NULL != pnOrder)
{
   m_myHeaderCtrl.GetOrderArray(pnOrder, nCount);

   int i, j, nTemp;
   for (i = 0, j = nCount - 1; i < j; i++, j--)
   {
      nTemp = pnOrder[i];
      pnOrder[i] = pnOrder[j];
      pnOrder[j] = nTemp;
   }

   m_myHeaderCtrl.SetOrderArray(nCount, pnOrder);
   free(pnOrder);
}

CHeaderCtrl::GetOverflowRect

Hiermee haalt u de begrenzingsrechthoek van de overloopknop van het huidige koptekstbeheer op.

BOOL GetOverflowRect(LPRECT lpRect) const;

Parameterwaarden

lpRect
[uit] Wijs een RECT-structuur aan die de informatie over de begrenzingsrechthoek ontvangt.

Retourwaarde

WAAR als deze functie is geslaagd; anders, ONWAAR.

Opmerkingen

Als het besturingselement koptekst meer items bevat dan tegelijkertijd kan worden weergegeven, kan het besturingselement een overloopknop weergeven die schuift naar items die niet zichtbaar zijn. Het besturingselement voor kopteksten moet de HDS_OVERFLOW en HDF_SPLITBUTTON stijlen hebben om de overloopknop weer te geven. De begrenzingsrechthoek plaatst de overloopknop en bestaat alleen wanneer de overloopknop wordt weergegeven. Zie Koptekstbesturingsstijlen voor meer informatie.

Met deze methode wordt het HDM_GETOVERFLOWRECT bericht verzonden, dat wordt beschreven in de Windows SDK.

Example

In het eerste codevoorbeeld wordt de variabele gedefinieerd, m_headerCtrldie wordt gebruikt voor toegang tot het huidige header-besturingselement. Deze variabele wordt gebruikt in het volgende voorbeeld.

CHeaderCtrl m_headerCtrl;
CSplitButton m_splitButton;

In het volgende codevoorbeeld ziet u de GetOverflowRect methode. In een eerdere sectie van de code hebben we een besturingselement voor kopteksten gemaakt met vijf kolommen. U kunt echter een kolomscheidingsteken slepen, zodat de kolom niet zichtbaar is. Als sommige kolommen niet zichtbaar zijn, tekent het koptekst besturingselement een overloopknop. In het volgende codevoorbeeld wordt een 3D-rechthoek rond de locatie van de overloopknop opgehaald.

void CNVC_MFC_CHeaderCtrl_s4Dlg::OnXGetoverflowrect()
{
   if (controlCreated == FALSE)
   {
      MessageBox(_T("Header control has not been created yet."));
      return;
   }
   CRect rect;
   // Get the overflow rectangle.
   BOOL bRetVal = m_headerCtrl.GetOverflowRect(&rect);
   // Get the device context.
   CDC *pDC = m_headerCtrl.GetDC();
   // Draw around the overflow rect a rectangle that has red
   // left and top sides, and green right and bottom sides.
   pDC->Draw3dRect(rect, RGB(255, 0, 0), RGB(0, 255, 0));
}

CHeaderCtrl::HitTest

Bepaalt welk kopitem, indien aanwezig, zich op een opgegeven punt bevindt.

int HitTest(LPHDHITTESTINFO* phdhti);

Parameterwaarden

phdhti
[in, uit] Aanwijzer naar een HDHITTESTINFO-structuur die het punt aangeeft dat moet worden getest en de resultaten van de test ontvangt.

Retourwaarde

De op nul gebaseerde index van het header-item, indien aanwezig, op de opgegeven positie; anders, -1.

Opmerkingen

Met deze methode wordt het HDM_HITTEST bericht verzonden, dat wordt beschreven in de Windows SDK.

Example

In het eerste codevoorbeeld wordt de variabele gedefinieerd, m_headerCtrldie wordt gebruikt voor toegang tot het huidige header-besturingselement. Deze variabele wordt gebruikt in het volgende voorbeeld.

CHeaderCtrl m_headerCtrl;
CSplitButton m_splitButton;

In het volgende codevoorbeeld ziet u de HitTest methode. In een eerdere sectie van dit codevoorbeeld hebben we een header-besturingselement gemaakt met vijf kolommen. U kunt echter een kolomscheidingsteken slepen, zodat de kolom niet zichtbaar is. In dit voorbeeld wordt de index van de kolom gerapporteerd als deze zichtbaar is en -1 als de kolom niet zichtbaar is.

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

CHeaderCtrl::InsertItem

Hiermee voegt u een nieuw item in een koptekst besturingselement in de opgegeven index.

int InsertItem(
    int nPos,
    HDITEM* phdi);

Parameterwaarden

nPos
De op nul gebaseerde index van het item dat moet worden ingevoegd. Als de waarde nul is, wordt het item ingevoegd aan het begin van het koptekst besturingselement. Als de waarde groter is dan de maximumwaarde, wordt het item ingevoegd aan het einde van het koptekst besturingselement.

phdi
Wijs een HDITEM-structuur aan met informatie over het item dat moet worden ingevoegd.

Retourwaarde

Index van het nieuwe item indien geslaagd; anders - 1.

Example

CString str;
HDITEM hdi;

hdi.mask = HDI_TEXT | HDI_WIDTH | HDI_FORMAT | HDI_IMAGE;
hdi.cxy = 100; // Make all columns 100 pixels wide.
hdi.fmt = HDF_STRING | HDF_CENTER;

// Insert 6 columns in the header control.
for (int i = 0; i < 6; i++)
{
   str.Format(TEXT("column %d"), i);
   hdi.pszText = str.GetBuffer(0);
   hdi.iImage = i % 3;

   m_myHeaderCtrl.InsertItem(i, &hdi);
}

CHeaderCtrl::Layout

Hiermee haalt u de grootte en positie van een header-besturingselement op binnen een bepaalde rechthoek.

BOOL Layout(HDLAYOUT* pHeaderLayout);

Parameterwaarden

pHeaderLayout
Aanwijzer naar een HDLAYOUT-structuur , die informatie bevat die wordt gebruikt om de grootte en positie van een header-besturingselement in te stellen.

Retourwaarde

Niet-nul indien geslaagd; anders 0.

Opmerkingen

Deze functie wordt gebruikt om de juiste dimensies te bepalen voor een nieuw header-besturingselement dat de opgegeven rechthoek in beslag neemt.

Example

HDLAYOUT hdl;
WINDOWPOS wpos;
RECT rc;

// Reposition the header control so that it is placed at
// the top of its parent window's client area.
m_myHeaderCtrl.GetParent()->GetClientRect(&rc);

hdl.prc = &rc;
hdl.pwpos = &wpos;
if (m_myHeaderCtrl.Layout(&hdl))
{
   m_myHeaderCtrl.SetWindowPos(
       CWnd::FromHandle(wpos.hwndInsertAfter),
       wpos.x,
       wpos.y,
       wpos.cx,
       wpos.cy,
       wpos.flags | SWP_SHOWWINDOW);
}

CHeaderCtrl::OrderToIndex

Haalt de indexwaarde voor een item op op basis van de volgorde in het koptekstbesturingselement.

int OrderToIndex(int nOrder) const;

Parameterwaarden

nBestelling
De op nul gebaseerde volgorde die het item in het koptekstbesturingselement wordt weergegeven, van links naar rechts.

Retourwaarde

De index van het item, op basis van de volgorde in het koptekstbesturingselement. De index telt van links naar rechts, beginnend met 0.

Opmerkingen

Met deze lidfunctie wordt het gedrag van de Win32-macro-HDM_ORDERTOINDEX geïmplementeerd, zoals beschreven in de Windows SDK. Het wordt geleverd ter ondersteuning van het bestellen van koptekstitems.

CHeaderCtrl::SetBitmapMargin

Hiermee stelt u de breedte van de marge van een bitmap in een koptekst besturingselement in.

int SetBitmapMargin(int nWidth);

Parameterwaarden

nWidth
Breedte, opgegeven in pixels, van de marge rond een bitmap binnen een bestaand koptekst besturingselement.

Retourwaarde

De breedte van de bitmapmarge in pixels.

Opmerkingen

Deze lidfunctie implementeert het gedrag van het Win32-bericht HDM_SETBITMAPMARGIN, zoals beschreven in de Windows SDK.

Example

int iOldMargin = m_myHeaderCtrl.SetBitmapMargin(15);

CHeaderCtrl::SetFilterChangeTimeout

Hiermee stelt u het time-outinterval in tussen de tijd dat een wijziging plaatsvindt in de filterkenmerken en het plaatsen van een HDN_FILTERCHANGE melding.

int SetFilterChangeTimeout(DWORD dwTimeOut);

Parameterwaarden

dwTimeOut
Time-outwaarde, in milliseconden.

Retourwaarde

De index van het filterbesturingselement dat wordt gewijzigd.

Opmerkingen

Deze lidfunctie implementeert het gedrag van het Win32-bericht HDM_SETFILTERCHANGETIMEOUT, zoals beschreven in de Windows SDK.

Example

int iFltr = m_myHeaderCtrl.SetFilterChangeTimeout(15);

CHeaderCtrl::SetFocusedItem

Hiermee stelt u de focus in op een opgegeven koptekstitem in het huidige koptekstbeheer.

BOOL SetFocusedItem(int iItem);

Parameterwaarden

iItem
[in] Op nul gebaseerde index van een kopitem.

Retourwaarde

WAAR als deze methode is geslaagd; anders, ONWAAR.

Opmerkingen

Met deze methode wordt het HDM_SETFOCUSEDITEM bericht verzonden, dat wordt beschreven in de Windows SDK.

Example

In het eerste codevoorbeeld wordt de variabele gedefinieerd, m_headerCtrldie wordt gebruikt voor toegang tot het huidige header-besturingselement. Deze variabele wordt gebruikt in het volgende voorbeeld.

CHeaderCtrl m_headerCtrl;
CSplitButton m_splitButton;

In het volgende codevoorbeeld ziet u de SetFocusedItem en GetFocusedItem methoden. In een eerdere sectie van de code hebben we een besturingselement voor kopteksten gemaakt met vijf kolommen. U kunt echter een kolomscheidingsteken slepen, zodat de kolom niet zichtbaar is. In het volgende voorbeeld wordt de laatste kolomkop als focusitem ingesteld en bevestigd.

void CNVC_MFC_CHeaderCtrl_s4Dlg::OnXSetfocuseditem()
{
   if (controlCreated == FALSE)
   {
      MessageBox(_T("Header control has not been created yet."));
      return;
   }

   // Check that we get the value we set.
   int item = m_headerCtrl.GetItemCount() - 1;
   m_headerCtrl.SetFocusedItem(item);
   int itemGet = m_headerCtrl.GetFocusedItem();
   CString str = _T("Set: focused item = %d\nGet: focused item = %d");
   str.Format(str, item, itemGet);
   MessageBox(str, _T("Set/GetFocused Item"));
}

CHeaderCtrl::SetHotDivider

Hiermee wijzigt u de scheiding tussen koptekstitems om een handmatig slepen en neerzetten van een kopitem aan te geven.

int SetHotDivider(CPoint pt);
int SetHotDivider(int nIndex);

Parameterwaarden

Pt
De positie van de aanwijzer. Het besturingselement koptekst markeert de juiste scheidingslijn op basis van de positie van de aanwijzer.

nIndex
De index van de gemarkeerde scheidingslijn.

Retourwaarde

De index van de gemarkeerde scheidingslijn.

Opmerkingen

Deze lidfunctie implementeert het gedrag van het Win32-bericht HDM_SETHOTDIVIDER, zoals beschreven in de Windows SDK. Het wordt geleverd ter ondersteuning van het slepen en neerzetten van koptekstitems.

Example

void CMyHeaderCtrl::OnMouseMove(UINT nFlags, CPoint point)
{
   SetHotDivider(point);

   CHeaderCtrl::OnMouseMove(nFlags, point);
}

CHeaderCtrl::SetImageList

Hiermee wijst u een lijst met afbeeldingen toe aan een koptekst besturingselement.

CImageList* SetImageList(CImageList* pImageList);

Parameterwaarden

pImageList
Een aanwijzer naar een CImageList object met de lijst met afbeeldingen dat moet worden toegewezen aan het besturingselement koptekst.

Retourwaarde

Een aanwijzer naar het CImageList-object dat eerder is toegewezen aan het header-besturingselement.

Opmerkingen

Deze lidfunctie implementeert het gedrag van het Win32-bericht HDM_SETIMAGELIST, zoals beschreven in de Windows SDK. Het CImageList object waarnaar de geretourneerde aanwijzer wijst, is een tijdelijk object en wordt verwijderd in de volgende niet-actieve verwerking.

Example

Zie het voorbeeld voor CHeaderCtrl::GetImageList.

CHeaderCtrl::SetItem

Hiermee stelt u de kenmerken van het opgegeven item in een header-besturingselement in.

BOOL SetItem(
    int nPos,
    HDITEM* pHeaderItem);

Parameterwaarden

nPos
De op nul gebaseerde index van het item dat moet worden bewerkt.

pHeaderItem
Wijs een HDITEM-structuur aan die informatie over het nieuwe item bevat.

Retourwaarde

Niet-nul indien geslaagd; anders 0.

Example

Zie het voorbeeld voor CHeaderCtrl::GetItem.

CHeaderCtrl::SetOrderArray

Hiermee stelt u de volgorde van links naar rechts van items in een koptekstbesturingselement in.

BOOL SetOrderArray(
    int iCount,
    LPINT piArray);

Parameterwaarden

iCount
Het aantal items voor koptekstbeheer.

piArray
Een aanwijzer naar het adres van een buffer die de indexwaarden van de items in het koptekstbesturingselement ontvangt, in de volgorde waarin deze van links naar rechts worden weergegeven.

Retourwaarde

Niet-nul indien geslaagd; anders 0.

Opmerkingen

Met deze lidfunctie wordt het gedrag van de Win32-macro-HDM_SETORDERARRAY geïmplementeerd, zoals beschreven in de Windows SDK. Het wordt geleverd ter ondersteuning van het bestellen van koptekstitems.

Example

Zie het voorbeeld voor CHeaderCtrl::GetOrderArray.

Zie ook

CWnd-klasse
Hiërarchiegrafiek
CTabCtrl-klasse
CListCtrl-klasse
CImageList-klasse