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 een Windows-controlelijstvak.
Syntaxis
class CCheckListBox : public CListBox
Leden
Openbare constructors
| Naam | Description |
|---|---|
CCheckListBox::CCheckListBox |
Maakt een CCheckListBox object. |
Openbare methoden
| Naam | Description |
|---|---|
CCheckListBox::Create |
Hiermee maakt u het windows-controlelijstvak en koppelt u het aan het CCheckListBox object. |
CCheckListBox::DrawItem |
Aangeroepen door het framework wanneer een visueel aspect van een keuzelijst met eigenaartekening wordt gewijzigd. |
CCheckListBox::Enable |
Hiermee schakelt u een selectievakjeitem voor de controlelijst in of uit. |
CCheckListBox::GetCheck |
Hiermee haalt u de status van het selectievakje van een item op. |
CCheckListBox::GetCheckStyle |
Hiermee haalt u de stijl van de selectievakjes van het besturingselement op. |
CCheckListBox::IsEnabled |
Bepaalt of een item is ingeschakeld. |
CCheckListBox::MeasureItem |
Aangeroepen door het framework wanneer een keuzelijst met een tekenstijl van eigenaar wordt gemaakt. |
CCheckListBox::OnGetCheckPosition |
Aangeroepen door het framework om de positie van het selectievakje van een item op te halen. |
CCheckListBox::SetCheck |
Hiermee stelt u de status van het selectievakje van een item in. |
CCheckListBox::SetCheckStyle |
Hiermee stelt u de stijl van de selectievakjes van het besturingselement in. |
Opmerkingen
In een controlelijst wordt een lijst met items weergegeven, zoals bestandsnamen. Elk item in de lijst heeft een selectievakje ernaast dat de gebruiker kan in- of uitschakelen.
CCheckListBox is alleen bedoeld voor door de eigenaar getekende besturingselementen omdat de lijst meer dan teksttekenreeksen bevat. Een controlelijstvak bevat eenvoudigste teksttekenreeksen en selectievakjes, maar u hoeft helemaal geen tekst te hebben. U kunt bijvoorbeeld een lijst met kleine bitmaps met een selectievakje naast elk item hebben.
Als u uw eigen controlelijstvak wilt maken, moet u uw eigen klas afleiden van CCheckListBox. Als u uw eigen klasse wilt afleiden, schrijft u een constructor voor de afgeleide klasse en roept u Createdeze aan.
Als u Windows-meldingsberichten wilt verwerken die door een keuzelijst naar het bovenliggende vak worden verzonden (meestal een klasse die is afgeleid van CDialog), voegt u voor elk bericht een berichttoewijzingsvermelding en een berichtenhandlerlidfunctie toe aan de bovenliggende klasse.
Elke berichtkaartvermelding heeft het volgende formulier:
ON_Notification(id, memberFxn)
waarbij id de id van het onderliggende venster wordt opgegeven van het besturingselement dat de melding verzendt en memberFxn de naam is van de bovenliggende lidfunctie die u hebt geschreven om de melding te verwerken.
Het prototype van de functie van de bovenliggende functie is als volgt:
afx_msg void memberFxn();
Er is slechts één berichtkaartvermelding die specifiek CCheckListBox betrekking heeft op (maar zie ook de berichtkaartvermeldingen voor CListBox):
-
ON_CLBN_CHKCHANGEDe gebruiker heeft de status van het selectievakje van een item gewijzigd.
Als uw controlelijst een standaardcontrolelijstvak is (een lijst met tekenreeksen met de selectievakjes van standaardformaat links van elke lijst), kunt u het standaardvak CCheckListBox::DrawItem gebruiken om het controlelijstvak te tekenen. Anders moet u de CListBox::CompareItem functie en de CCheckListBox::DrawItem functies CCheckListBox::MeasureItem overschrijven.
U kunt een controlelijstvak maken vanuit een dialoogvenstersjabloon of rechtstreeks in uw code.
Overnamehiërarchie
CCheckListBox
Requirements
Rubriek:afxwin.h
CCheckListBox::CCheckListBox
Maakt een CCheckListBox object.
CCheckListBox();
Opmerkingen
U maakt een CCheckListBox object in twee stappen. Definieer eerst een klasse die is afgeleid van CCheckListBox, en roep Createvervolgens aan, waarmee het vak Windows-controlelijst wordt geïnitialiseerd en aan het CCheckListBox object wordt gekoppeld.
Example
CCheckListBox myCheckListBox;
myCheckListBox.Create(LBS_HASSTRINGS | LBS_OWNERDRAWFIXED,
CRect(10, 10, 100, 100), this, IDC_MYCHECKLISTBOX);
CCheckListBox::Create
Hiermee maakt u het windows-controlelijstvak en koppelt u het aan het CCheckListBox object.
virtual BOOL Create(
DWORD dwStyle,
const RECT& rect,
CWnd* pParentWnd,
UINT nID);
Parameterwaarden
dwStyle
Hiermee geeft u de stijl van het controlelijstvak. De stijl moet zijn LBS_HASSTRINGS en of LBS_OWNERDRAWFIXED (alle items in de lijst hebben dezelfde hoogte) of LBS_OWNERDRAWVARIABLE (items in de lijst hebben verschillende hoogten). Deze stijl kan worden gecombineerd met andere keuzelijststijlen , behalve LBS_USETABSTOPS.
rect
Hiermee geeft u de grootte en positie van het controlelijstvak op. Dit kan een CRect object of een RECT structuur zijn.
pParentWnd
Hiermee geeft u het bovenliggende venster van het controlelijstvak op (meestal een CDialog object). Deze mag niet NULL zijn.
nID
Hiermee geeft u de besturingselement-id van het controlelijstvak op.
Retourwaarde
Niet-nul indien geslaagd; anders 0.
Opmerkingen
U maakt een CCheckListBox object in twee stappen. Definieer eerst een klasse die is afgeleid van CcheckListBox en roep vervolgens Createaan, waarmee het vak Windows-controlelijst wordt geïnitialiseerd en gekoppeld aan de CCheckListBox. Zie CCheckListBox::CCheckListBox voor een voorbeeld.
Wanneer Create dit wordt uitgevoerd, verzendt Windows het WM_NCCREATEbesturingselement , WM_CREATEen WM_NCCALCSIZEWM_GETMINMAXINFO berichten naar het besturingselement controlelijst.
Deze berichten worden standaard verwerkt door de OnNcCreatefuncties , OnCreateen OnNcCalcSizeOnGetMinMaxInfo leden in de CWnd basisklasse. Als u de standaardverwerking van berichten wilt uitbreiden, voegt u een berichttoewijzing toe aan de afgeleide klasse en overschrijft u de voorgaande berichtenhandlerlidfuncties. Overschrijven OnCreate, bijvoorbeeld om de benodigde initialisatie voor een nieuwe klasse uit te voeren.
Pas de volgende vensterstijlen toe op een besturingselement voor een controlelijst:
WS_CHILDAltijdWS_VISIBLEGewoonlijkWS_DISABLEDZeldenWS_VSCROLLEen verticale schuifbalk toevoegenWS_HSCROLLEen horizontale schuifbalk toevoegenWS_GROUPBesturingselementen groeperenWS_TABSTOPTabbing naar dit besturingselement toestaan
CCheckListBox::DrawItem
Aangeroepen door het framework wanneer een visueel aspect van een door de eigenaar getekend controlelijstvak verandert.
virtual void DrawItem(LPDRAWITEMSTRUCT lpDrawItemStruct);
Parameterwaarden
lpDrawItemStruct
Een lange aanwijzer naar een DRAWITEMSTRUCT structuur die informatie bevat over het type tekening dat nodig is.
Opmerkingen
De itemAction en itemState leden van de DRAWITEMSTRUCT structuur definiëren de tekenactie die moet worden uitgevoerd.
Deze functie tekent standaard een standaard keuzelijst met selectievakjes, bestaande uit een lijst met tekenreeksen die elk een selectievakje van standaardformaat aan de linkerkant bevatten. De keuzelijstgrootte van het selectievakje is het selectievakje dat is opgegeven in Create.
Overschrijf deze lidfunctie om het tekenen van selectievakjes voor eigenaartekeningen te implementeren die niet de standaardinstelling zijn, zoals controlelijstvakken met lijsten die geen tekenreeksen zijn, met items met variabele hoogte of met selectievakjes die zich niet aan de linkerkant bevinden. De toepassing moet alle GDI-objecten (Graphics Device Interface) herstellen die zijn geselecteerd voor de weergavecontext die is opgegeven lpDrawItemStruct vóór de beëindiging van deze lidfunctie.
Als items in het controlelijstvak niet dezelfde hoogte hebben, moet de stijl van het controlelijstvak (opgegeven in Create) zijn LBS_OWNERVARIABLEen moet u de MeasureItem functie overschrijven.
CCheckListBox::Enable
Roep deze functie aan om een keuzelijstitem in of uit te schakelen.
void Enable(
int nIndex,
BOOL bEnabled = TRUE);
Parameterwaarden
nIndex
Index van het item in het controlelijstvak dat moet worden ingeschakeld.
bEnabled
Hiermee geeft u op of het item is ingeschakeld of uitgeschakeld.
CCheckListBox::GetCheck
Hiermee wordt de status van het opgegeven selectievakje opgehaald.
int GetCheck(int nIndex);
Parameterwaarden
nIndex
Index op basis van nul van een selectievakje in de keuzelijst.
Retourwaarde
De status van het opgegeven selectievakje. De volgende tabel bevat mogelijke waarden.
| Waarde | Description |
|---|---|
BST_CHECKED |
Het selectievakje is ingeschakeld. |
BST_UNCHECKED |
Het selectievakje is niet ingeschakeld. |
BST_INDETERMINATE |
De status van het selectievakje is onbepaald. |
CCheckListBox::GetCheckStyle
Roep deze functie aan om de stijl van het controlelijstvak op te halen.
UINT GetCheckStyle();
Retourwaarde
De stijl van de selectievakjes van het besturingselement.
Opmerkingen
Zie voor meer informatie over mogelijke stijlen SetCheckStyle.
CCheckListBox::IsEnabled
Roep deze functie aan om te bepalen of een item is ingeschakeld.
BOOL IsEnabled(int nIndex);
Parameterwaarden
nIndex
Index van het item.
Retourwaarde
Niet-nul als het item is ingeschakeld; anders 0.
CCheckListBox::MeasureItem
Aangeroepen door het framework wanneer een controlelijstvak met een niet-standaardstijl wordt gemaakt.
virtual void MeasureItem(LPMEASUREITEMSTRUCT lpMeasureItemStruct);
Parameterwaarden
lpMeasureItemStruct
Een lange aanwijzer naar een MEASUREITEMSTRUCT structuur.
Opmerkingen
Deze lidfunctie doet standaard niets. Overschrijf deze lidfunctie en vul de MEASUREITEMSTRUCT structuur in om Windows te informeren over de afmetingen van controlelijstitems. Als het controlelijstvak met de LBS_OWNERDRAWVARIABLE stijl wordt gemaakt, roept het framework deze lidfunctie aan voor elk item in de keuzelijst. Anders wordt dit lid slechts één keer aangeroepen.
CCheckListBox::OnGetCheckPosition
Dit framework roept deze functie aan om de positie en grootte van het selectievakje in een item op te halen.
virtual CRect OnGetCheckPosition(
CRect rectItem,
CRect rectCheckBox);
Parameterwaarden
rectItem
De positie en grootte van het lijstitem.
rectCheckBox
De standaardpositie en grootte van het selectievakje van een item.
Retourwaarde
De positie en grootte van het selectievakje van een item.
Opmerkingen
De standaard implementatie retourneert alleen de standaardpositie en grootte van het selectievakje (rectCheckBox). Standaard wordt een selectievakje uitgelijnd in de linkerbovenhoek van een item en is de standaard selectievakjegrootte. Er zijn mogelijk gevallen waarin u de selectievakjes aan de rechterkant wilt of een groter of kleiner selectievakje wilt. In deze gevallen overschrijven OnGetCheckPosition om de positie en grootte van het selectievakje binnen het item te wijzigen.
CCheckListBox::SetCheck
Hiermee stelt u de status van het opgegeven selectievakje in.
void SetCheck(
int nIndex,
int nCheck);
Parameterwaarden
nIndex
Index op basis van nul van een selectievakje in de keuzelijst.
nCheck
De knopstatus voor het opgegeven selectievakje. Zie de sectie Opmerkingen voor mogelijke waarden.
Opmerkingen
De volgende tabel bevat mogelijke waarden voor de nCheck parameter.
| Waarde | Description |
|---|---|
BST_CHECKED |
Schakel het opgegeven selectievakje in. |
BST_UNCHECKED |
Schakel het opgegeven selectievakje uit. |
BST_INDETERMINATE |
Stel de opgegeven selectievakjestatus in op onbepaalde tijd. Deze status is alleen beschikbaar als de stijl van het selectievakje is BS_AUTO3STATE of BS_3STATE. Zie Knopstijlen voor meer informatie. |
CCheckListBox::SetCheckStyle
Roep deze functie aan om de stijl van selectievakjes in te stellen in het selectievakje controlelijst.
void SetCheckStyle(UINT nStyle);
Parameterwaarden
nStyle
Bepaalt de stijl van selectievakjes in het controlelijstvak.
Opmerkingen
Geldige stijlen zijn:
BS_CHECKBOXBS_AUTOCHECKBOXBS_AUTO3STATEBS_3STATE
Zie Knopstijlen voor meer informatie over deze stijlen.