Share via


CCheckListBox-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 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_CHKCHANGE De 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

CObject

CCmdTarget

CWnd

CListBox

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_CHILD Altijd

  • WS_VISIBLE Gewoonlijk

  • WS_DISABLED Zelden

  • WS_VSCROLL Een verticale schuifbalk toevoegen

  • WS_HSCROLL Een horizontale schuifbalk toevoegen

  • WS_GROUP Besturingselementen groeperen

  • WS_TABSTOP Tabbing 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_CHECKBOX

  • BS_AUTOCHECKBOX

  • BS_AUTO3STATE

  • BS_3STATE

Zie Knopstijlen voor meer informatie over deze stijlen.

Zie ook

MFC-voorbeeld TSTCON
CListBox klasse
Hiërarchiegrafiek