CCheckListBox osztály

Megjegyzés:

A Microsoft Foundation Classes (MFC) könyvtár továbbra is támogatott. A továbbiakban azonban nem adunk hozzá funkciókat, és nem frissítjük a dokumentációt.

A Windows-ellenőrzőlista funkcióit biztosítja.

Szemantika

class CCheckListBox : public CListBox

Tagok

Nyilvános konstruktorok

Név Description
CCheckListBox::CCheckListBox Egy CCheckListBox objektumot hoz létre.

Nyilvános metódusok

Név Description
CCheckListBox::Create Létrehozza a Windows jelölőnégyzetet, és csatolja az CCheckListBox objektumhoz.
CCheckListBox::DrawItem A keretrendszer meghívja, amikor megváltozik egy tulajdonos-rajz lista mezőjének vizuális aspektusa.
CCheckListBox::Enable Jelölőnégyzetelem engedélyezése vagy letiltása.
CCheckListBox::GetCheck Beolvasja egy elem állapotának jelölőnégyzetét.
CCheckListBox::GetCheckStyle Beolvashatja a vezérlőelem jelölőnégyzeteinek stílusát.
CCheckListBox::IsEnabled Meghatározza, hogy egy elem engedélyezve van-e.
CCheckListBox::MeasureItem A keretrendszer meghívja, amikor létrejön egy tulajdonos-rajz stílusú listamező.
CCheckListBox::OnGetCheckPosition A keretrendszer meghívta, hogy bekérje egy elem jelölőnégyzetének pozícióját.
CCheckListBox::SetCheck Az elem állapotának beállítása jelölőnégyzet.
CCheckListBox::SetCheckStyle Beállítja a vezérlőelem jelölőnégyzeteinek stílusát.

Megjegyzések

A "jelölőnégyzetek" az elemek, például a fájlnevek listáját jelenítik meg. A lista minden eleméhez tartozik egy jelölőnégyzet, amelyet a felhasználó ellenőrizhet vagy törölhet.

CCheckListBox csak a tulajdonos által rajzolt vezérlőkre vonatkozik, mert a lista nem szöveges sztringeket tartalmaz. A legegyszerűbb esetben a jelölőnégyzetek szöveges sztringeket és jelölőnégyzeteket tartalmaznak, de egyáltalán nem kell szöveggel rendelkeznie. Például az egyes elemek melletti jelölőnégyzettel rendelkező kis bitképek listája is szerepelhet.

Saját jelölőnégyzet létrehozásához saját osztályt kell származtatnia.CCheckListBox Saját osztály létrehozásához írjon konstruktort a származtatott osztályhoz, majd hívja meg a következőt Create: .

Ha egy listamező által a szülőnek küldött Windows-értesítési üzeneteket szeretné kezelni (általában egy osztályból CDialogszármazik), adjon hozzá egy üzenettérkép-bejegyzést és egy üzenetkezelő tagfüggvényt a szülőosztályhoz minden egyes üzenethez.

Minden üzenettérkép-bejegyzés a következő formában történik:

ON_Nemzetiség(id, memberFxn)

ahol id megadja az értesítést küldő vezérlő gyermekablak-azonosítóját, és memberFxn az értesítés kezeléséhez írt szülőtagfüggvény neve.

A szülő függvény prototípusa a következő:

afx_msg void memberFxn();

Csak egy üzenettérkép-bejegyzés van, amely kifejezetten a CCheckListBox következőhöz kapcsolódik (de lásd a következő üzenettérkép bejegyzéseit CListBoxis):

  • ON_CLBN_CHKCHANGE A felhasználó módosította egy elem jelölőnégyzetének állapotát.

Ha a jelölőnégyzet alapértelmezett jelölőnégyzet (az alapértelmezett méretű jelölőnégyzeteket tartalmazó sztringek listája az egyes jelölőnégyzetek bal oldalán), az alapértelmezett CCheckListBox::DrawItem beállítással rajzolhatja meg a jelölőnégyzetet. Ellenkező esetben felül kell bírálnia a függvényt CListBox::CompareItem és CCheckListBox::MeasureItem a CCheckListBox::DrawItem függvényeket.

A jelölőnégyzetet párbeszédpanelsablonból vagy közvetlenül a kódból is létrehozhatja.

Öröklési hierarchia

CObject

CCmdTarget

CWnd

CListBox

CCheckListBox

Requirements

Fejléc:afxwin.h

CCheckListBox::CCheckListBox

Egy CCheckListBox objektumot hoz létre.

CCheckListBox();

Megjegyzések

Egy objektumot CCheckListBox két lépésben hozhat létre. Először definiáljon egy osztályt, amely a következőből CCheckListBoxszármazik, majd a hívás Create, amely inicializálja a Windows jelölőnégyzetet, és csatolja azt az CCheckListBox objektumhoz.

Example

CCheckListBox myCheckListBox;
myCheckListBox.Create(LBS_HASSTRINGS | LBS_OWNERDRAWFIXED,
                      CRect(10, 10, 100, 100), this, IDC_MYCHECKLISTBOX);

CCheckListBox::Create

Létrehozza a Windows jelölőnégyzetet, és csatolja az CCheckListBox objektumhoz.

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

Paraméterek

dwStyle
A jelölőnégyzet stílusát adja meg. A stílusnak vagy LBS_OWNERDRAWFIXED (a listában szereplő összes elemnek azonos magasságúnak kell lennieLBS_HASSTRINGS) vagy LBS_OWNERDRAWVARIABLE (a lista elemei eltérő magasságúak). Ez a stílus más listastílusokkal is kombinálható, kivéve LBS_USETABSTOPS.

rect
A jelölőnégyzet méretét és pozícióját adja meg. CRect Lehet objektum vagy RECT struktúra.

pParentWnd
Megadja a jelölőnégyzet szülőablakát (általában egy objektumot CDialog ). Nem lehet NULL.

nID
Megadja a jelölőnégyzet vezérlőazonosítóját.

Visszaadott érték

Nonzero, ha sikeres; egyéb esetben 0.

Megjegyzések

Egy objektumot CCheckListBox két lépésben hozhat létre. Először definiáljon egy osztályt, amely a rendszerből CcheckListBox származik, majd meghívja Createazt, amely inicializálja a Windows jelölőnégyzetet, és csatolja azt a CCheckListBox. Tekintse meg CCheckListBox::CCheckListBox a mintát.

A végrehajtáskor Create a Windows elküldi a WM_NCCREATE, WM_CREATE, WM_NCCALCSIZEés WM_GETMINMAXINFO az üzeneteket a jelölőnégyzet vezérlőelemnek.

Ezeket az üzeneteket alapértelmezés szerint az OnNcCreatealaposztály , OnCreate, OnNcCalcSizeés OnGetMinMaxInfo tagfüggvényei CWnd kezelik. Az alapértelmezett üzenetkezelés kiterjesztéséhez adjon hozzá egy üzenettérképet a származtatott osztályhoz, és felülbírálja az előző üzenetkezelő tagfüggvényeket. Felülbírálhatja OnCreatepéldául egy új osztály szükséges inicializálását.

Alkalmazza a következő ablakstílusokat egy jelölőnégyzet vezérlőelemre:

  • WS_CHILD Mindig

  • WS_VISIBLE Általában

  • WS_DISABLED Ritkán

  • WS_VSCROLL Függőleges görgetősáv hozzáadása

  • WS_HSCROLL Vízszintes görgetősáv hozzáadása

  • WS_GROUP Vezérlőelemek csoportosítása

  • WS_TABSTOP A vezérlőelemhez való lapozás engedélyezése

CCheckListBox::DrawItem

A keretrendszer meghívja, amikor megváltozik a tulajdonos által rajzolt ellenőrzőlista vizuális aspektusa.

virtual void DrawItem(LPDRAWITEMSTRUCT lpDrawItemStruct);

Paraméterek

lpDrawItemStruct
Hosszú mutató egy DRAWITEMSTRUCT olyan struktúrára, amely a szükséges rajztípussal kapcsolatos információkat tartalmazza.

Megjegyzések

A itemAction struktúra tagjai határozzák itemStateDRAWITEMSTRUCT meg a végrehajtandó rajzműveletet.

Ez a függvény alapértelmezés szerint egy alapértelmezett jelölőnégyzetlistát rajzol, amely egy sztringlistából áll, amelyek mindegyike alapértelmezett méretű jelölőnégyzettel balra található. A jelölőnégyzetlista mérete a megadott Create.

A tagfüggvény felülbírálása a nem alapértelmezett tulajdonos-rajz jelölőnégyzetek rajzának implementálásához, például a nem sztringeket tartalmazó listákkal, változó magasságú elemekkel vagy a bal oldalon nem található jelölőnégyzetekkel. Az alkalmazásnak vissza kell állítania az összes grafikus eszközillesztő (GDI) objektumot, amely a tagfüggvény bezárása előtt megadott lpDrawItemStruct megjelenítési környezethez van kiválasztva.

Ha a jelölőnégyzet elemei nem azonos magasságúak, akkor a jelölőnégyzet stílusának (a megadott Create) kell lennie LBS_OWNERVARIABLE, és felül kell bírálnia a függvényt MeasureItem .

CCheckListBox::Enable

A függvény meghívása jelölőnégyzetelem engedélyezéséhez vagy letiltásához.

void Enable(
    int nIndex,
    BOOL bEnabled = TRUE);

Paraméterek

nIndex
Az engedélyezendő jelölőnégyzetelem indexe.

bEnabled
Megadja, hogy az elem engedélyezve vagy letiltva van-e.

CCheckListBox::GetCheck

A megadott jelölőnégyzet állapotát kéri le.

int GetCheck(int nIndex);

Paraméterek

nIndex
A listamezőben található jelölőnégyzet nullaalapú indexe.

Visszaadott érték

A megadott jelölőnégyzet állapota. Az alábbi táblázat a lehetséges értékeket sorolja fel.

Érték Description
BST_CHECKED A jelölőnégyzet be van jelölve.
BST_UNCHECKED A jelölőnégyzet nincs bejelölve.
BST_INDETERMINATE A jelölőnégyzet állapota határozatlan.

CCheckListBox::GetCheckStyle

Hívja meg ezt a függvényt a jelölőnégyzet stílusának lekéréséhez.

UINT GetCheckStyle();

Visszaadott érték

A vezérlőelem jelölőnégyzeteinek stílusa.

Megjegyzések

További információ a lehetséges stílusokról: SetCheckStyle.

CCheckListBox::IsEnabled

Hívja meg ezt a függvényt annak megállapításához, hogy egy elem engedélyezve van-e.

BOOL IsEnabled(int nIndex);

Paraméterek

nIndex
Az elem indexe.

Visszaadott érték

Nonzero, ha az elem engedélyezve van; egyéb esetben 0.

CCheckListBox::MeasureItem

A keretrendszer meghívja, amikor létrejön egy nemdefault stílusú jelölőnégyzet.

virtual void MeasureItem(LPMEASUREITEMSTRUCT lpMeasureItemStruct);

Paraméterek

lpMeasureItemStruct
Hosszú mutató egy MEASUREITEMSTRUCT szerkezetre.

Megjegyzések

Alapértelmezés szerint ez a tagfüggvény nem tesz semmit. Bírálja felül ezt a tagfüggvényt, és töltse ki a struktúrát, MEASUREITEMSTRUCT hogy tájékoztassa a Windowst a jelölőnégyzetelemek méretéről. Ha a jelölőnégyzet a stílussal LBS_OWNERDRAWVARIABLE jön létre, a keretrendszer meghívja ezt a tagfüggvényt a lista minden eleméhez. Ellenkező esetben a rendszer csak egyszer hívja meg ezt a tagot.

CCheckListBox::OnGetCheckPosition

A keretrendszer meghívja ezt a függvényt, hogy lekérje az elem jelölőnégyzetének pozícióját és méretét.

virtual CRect OnGetCheckPosition(
    CRect rectItem,
    CRect rectCheckBox);

Paraméterek

rectItem
A listaelem helye és mérete.

rectCheckBox
Az elem alapértelmezett pozíciója és mérete.

Visszaadott érték

Az elem pozíciója és mérete jelölőnégyzet.

Megjegyzések

Az alapértelmezett implementáció csak a jelölőnégyzetrectCheckBox () alapértelmezett pozícióját és méretét adja vissza. Alapértelmezés szerint egy jelölőnégyzet az elem bal felső sarkában van igazítva, és a szokásos jelölőnégyzetméret. Lehetnek olyan esetek, amikor a jobb oldalon szeretné bejelölni a jelölőnégyzeteket, vagy nagyobb vagy kisebb jelölőnégyzetet szeretne. Ezekben az esetekben felülbírálással OnGetCheckPosition módosíthatja a jelölőnégyzet pozícióját és méretét az elemen belül.

CCheckListBox::SetCheck

A megadott jelölőnégyzet állapotát állítja be.

void SetCheck(
    int nIndex,
    int nCheck);

Paraméterek

nIndex
A listamezőben található jelölőnégyzet nullaalapú indexe.

nCheck
A megadott jelölőnégyzet gombállapota. A lehetséges értékekért tekintse meg a Megjegyzések szakaszt.

Megjegyzések

Az alábbi táblázat a paraméter lehetséges értékeit sorolja fel nCheck .

Érték Description
BST_CHECKED Jelölje be a megadott jelölőnégyzetet.
BST_UNCHECKED Törölje a jelet a megadott jelölőnégyzetből.
BST_INDETERMINATE Állítsa be a megadott jelölőnégyzet állapotát határozatlan értékre.

Ez az állapot csak akkor érhető el, ha a jelölőnégyzet stílusa BS_AUTO3STATE vagy BS_3STATE. További információ: Gombstílusok.

CCheckListBox::SetCheckStyle

A függvény meghívásával beállíthatja a jelölőnégyzetek stílusát a jelölőnégyzetben.

void SetCheckStyle(UINT nStyle);

Paraméterek

nStyle
Meghatározza a jelölőnégyzetek stílusát a jelölőnégyzetben.

Megjegyzések

Érvényes stílusok:

  • BS_CHECKBOX

  • BS_AUTOCHECKBOX

  • BS_AUTO3STATE

  • BS_3STATE

Ezekről a stílusokról további információt a Gombstílusok című témakörben talál.

Lásd még

MFC-minta TSTCON
CListBox osztály
hierarchiadiagram