Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of mappen te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen om mappen te wijzigen.
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
CHeaderCtrlobject 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
CHeaderCtrlobject maakt.Dynamische tracering van kopteksten, waarmee het kopitem wordt gemarkeerd wanneer de aanwijzer erboven beweegt. Gebruik de stijl HDS_HOTTRACK wanneer u het
CHeaderCtrlobject maakt.Ondersteuning voor afbeeldingenlijst. Koptekstitems kunnen afbeeldingen bevatten die zijn opgeslagen in een
CImageListobject of tekst.
Zie Besturingselementen en CHeaderCtrl gebruiken voor meer informatie over het gebruikCHeaderCtrl.
Overnamehiërarchie
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