Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
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_CHKCHANGEA 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
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_CHILDMindigWS_VISIBLEÁltalábanWS_DISABLEDRitkánWS_VSCROLLFüggőleges görgetősáv hozzáadásaWS_HSCROLLVízszintes görgetősáv hozzáadásaWS_GROUPVezérlőelemek csoportosításaWS_TABSTOPA 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_CHECKBOXBS_AUTOCHECKBOXBS_AUTO3STATEBS_3STATE
Ezekről a stílusokról további információt a Gombstílusok című témakörben talál.