CCheckListBox
Klasa
Zawiera funkcje pola listy kontrolnej systemu Windows.
Składnia
class CCheckListBox : public CListBox
Elementy członkowskie
Konstruktory publiczne
Nazwa/nazwisko | opis |
---|---|
CCheckListBox::CCheckListBox |
CCheckListBox Tworzy obiekt. |
Metody publiczne
Nazwa/nazwisko | opis |
---|---|
CCheckListBox::Create |
Tworzy pole listy kontrolnej systemu Windows i dołącza je do CCheckListBox obiektu. |
CCheckListBox::DrawItem |
Wywoływana przez platformę, gdy zmienia się wizualny aspekt pola listy właściciela. |
CCheckListBox::Enable |
Włącza lub wyłącza element pola listy kontrolnej. |
CCheckListBox::GetCheck |
Pobiera stan pola wyboru elementu. |
CCheckListBox::GetCheckStyle |
Pobiera styl pól wyboru kontrolki. |
CCheckListBox::IsEnabled |
Określa, czy element jest włączony. |
CCheckListBox::MeasureItem |
Wywoływana przez platformę po utworzeniu pola listy z stylem rysowania właściciela. |
CCheckListBox::OnGetCheckPosition |
Wywoływana przez strukturę w celu uzyskania pozycji pola wyboru elementu. |
CCheckListBox::SetCheck |
Ustawia stan pola wyboru elementu. |
CCheckListBox::SetCheckStyle |
Ustawia styl pól wyboru kontrolki. |
Uwagi
Pole "lista kontrolna" wyświetla listę elementów, takich jak nazwy plików. Obok każdego elementu na liście znajduje się pole wyboru, które użytkownik może zaznaczyć lub wyczyścić.
CCheckListBox
dotyczy tylko kontrolek narysowanych przez właściciela, ponieważ lista zawiera więcej niż ciągi tekstowe. W najprostszym polu listy kontrolnej znajdują się ciągi tekstowe i pola wyboru, ale w ogóle nie trzeba mieć tekstu. Można na przykład wyświetlić listę małych map bitowych z polem wyboru obok każdego elementu.
Aby utworzyć własne pole listy kontrolnej, musisz utworzyć własną klasę z klasy CCheckListBox
. Aby utworzyć własną klasę, napisz konstruktor dla klasy pochodnej, a następnie wywołaj metodę Create
.
Jeśli chcesz obsługiwać komunikaty powiadomień systemu Windows wysyłane przez pole listy do elementu nadrzędnego (zazwyczaj klasy pochodzącej z CDialog
klasy ), dodaj funkcję składową elementu członkowskiego mapy komunikatów i obsługi komunikatów do klasy nadrzędnej dla każdego komunikatu.
Każdy wpis mapy komunikatów ma następujący formularz:
ON_Notification ( id
, memberFxn
)
gdzie id
określa identyfikator okna podrzędnego kontrolki wysyłającej powiadomienie i memberFxn
jest nazwą nadrzędnej funkcji składowej, która została zapisana w celu obsługi powiadomienia.
Prototyp funkcji elementu nadrzędnego jest następujący:
afx_msg void memberFxn();
Istnieje tylko jeden wpis mapy komunikatów odnoszący się specjalnie do CCheckListBox
elementu (ale zobacz również wpisy mapy komunikatów dla CListBox
elementu ):
ON_CLBN_CHKCHANGE
Użytkownik zmienił stan pola wyboru elementu.
Jeśli pole listy kontrolnej jest domyślnym polem listy kontrolnej (lista ciągów z polami wyboru o domyślnym rozmiarze po lewej stronie każdego), możesz użyć wartości domyślnej CCheckListBox::DrawItem
, aby narysować pole listy kontrolnej. W przeciwnym razie należy zastąpić CListBox::CompareItem
funkcję i CCheckListBox::DrawItem
funkcje i CCheckListBox::MeasureItem
.
Możesz utworzyć pole wyboru na podstawie szablonu okna dialogowego lub bezpośrednio w kodzie.
Hierarchia dziedziczenia
CCheckListBox
Wymagania
Nagłówek: afxwin.h
CCheckListBox::CCheckListBox
CCheckListBox
Tworzy obiekt.
CCheckListBox();
Uwagi
Obiekt jest konstruowany CCheckListBox
w dwóch krokach. Najpierw zdefiniuj klasę pochodzącą z CCheckListBox
klasy , a następnie wywołaj metodę Create
, która inicjuje pole listy kontrolnej systemu Windows i dołącza ją do CCheckListBox
obiektu.
Przykład
CCheckListBox myCheckListBox;
myCheckListBox.Create(LBS_HASSTRINGS | LBS_OWNERDRAWFIXED,
CRect(10, 10, 100, 100), this, IDC_MYCHECKLISTBOX);
CCheckListBox::Create
Tworzy pole listy kontrolnej systemu Windows i dołącza je do CCheckListBox
obiektu.
virtual BOOL Create(
DWORD dwStyle,
const RECT& rect,
CWnd* pParentWnd,
UINT nID);
Parametry
dwStyle
Określa styl pola listy kontrolnej. Styl musi mieć LBS_HASSTRINGS
wartość i LBS_OWNERDRAWFIXED
albo (wszystkie elementy na liście mają taką samą wysokość) lub LBS_OWNERDRAWVARIABLE
(elementy na liście mają różne wysokości). Ten styl można połączyć z innymi stylami pól listy z wyjątkiem LBS_USETABSTOPS
.
rect
Określa rozmiar i położenie pola wyboru listy kontrolnej. Może być obiektem CRect
lub strukturą RECT
.
pParentWnd
Określa okno nadrzędne pola wyboru (zazwyczaj CDialog
obiekt). Nie może mieć wartości NULL.
nID
Określa identyfikator kontrolki pola kontrolnego.
Wartość zwracana
Bezzerowe, jeśli się powiedzie; w przeciwnym razie 0.
Uwagi
Obiekt jest konstruowany CCheckListBox
w dwóch krokach. Najpierw zdefiniuj klasę pochodną , CcheckListBox
a następnie wywołaj Create
metodę , która inicjuje pole listy kontrolnej systemu Windows i dołącza ją do elementu CCheckListBox
. Zobacz, aby zapoznać się CCheckListBox::CCheckListBox
z przykładem.
Podczas Create
wykonywania system Windows wysyła WM_NCCREATE
komunikaty , WM_CREATE
, WM_NCCALCSIZE
i WM_GETMINMAXINFO
do kontrolki pola kontrolnego.
Te komunikaty są domyślnie obsługiwane przez OnNcCreate
funkcje składowe , OnCreate
, OnNcCalcSize
i OnGetMinMaxInfo
w klasie bazowej CWnd
. Aby rozszerzyć domyślną obsługę komunikatów, dodaj mapę komunikatów do klasy pochodnej i zastąp poprzednie funkcje składowe programu obsługi komunikatów. Zastąpij OnCreate
na przykład , aby wykonać wymaganą inicjację dla nowej klasy.
Zastosuj następujące style okna do kontrolki pola wyboru:
WS_CHILD
ZawszeWS_VISIBLE
ZwykleWS_DISABLED
RzadkoWS_VSCROLL
Aby dodać pionowy pasek przewijaniaWS_HSCROLL
Aby dodać poziomy pasek przewijaniaWS_GROUP
Aby grupować kontrolkiWS_TABSTOP
Aby zezwolić na tabulacji do tej kontrolki
CCheckListBox::DrawItem
Wywoływana przez strukturę, gdy zmienia się wizualny aspekt pola listy kontrolnej rysowanej przez właściciela.
virtual void DrawItem(LPDRAWITEMSTRUCT lpDrawItemStruct);
Parametry
lpDrawItemStruct
Długi wskaźnik do DRAWITEMSTRUCT
struktury zawierającej informacje o wymaganym typie rysunku.
Uwagi
Elementy itemAction
DRAWITEMSTRUCT
i itemState
struktury definiują akcję rysunku, która ma zostać wykonana.
Domyślnie ta funkcja rysuje domyślną listę pól wyboru zawierającą listę ciągów z polem wyboru o domyślnym rozmiarze po lewej stronie. Rozmiar listy pól wyboru jest określony w pliku Create
.
Zastąpi tę funkcję składową, aby zaimplementować rysunek pól listy kontrolnej rysowania właściciela, które nie są domyślne, takie jak pola listy kontrolne z listami, które nie są ciągami, z elementami o zmiennej wysokości lub polami wyboru, które nie znajdują się po lewej stronie. Aplikacja powinna przywrócić wszystkie obiekty interfejsu urządzenia graficznego (GDI) wybrane dla kontekstu wyświetlania podanego przed lpDrawItemStruct
zakończeniem tej funkcji składowej.
Jeśli elementy pola wyboru nie mają tej samej wysokości, styl pola wyboru (określony w Create
) musi mieć LBS_OWNERVARIABLE
wartość , a funkcja musi zostać zastąpiona MeasureItem
.
CCheckListBox::Enable
Wywołaj tę funkcję, aby włączyć lub wyłączyć element pola listy kontrolnej.
void Enable(
int nIndex,
BOOL bEnabled = TRUE);
Parametry
nIndex
Indeks elementu pola wyboru, który ma być włączony.
bEnabled
Określa, czy element jest włączony, czy wyłączony.
CCheckListBox::GetCheck
Pobiera stan określonego pola wyboru.
int GetCheck(int nIndex);
Parametry
nIndex
Indeks zerowy pola wyboru, który znajduje się w polu listy.
Wartość zwracana
Stan określonego pola wyboru. W poniższej tabeli wymieniono możliwe wartości.
Wartość | Opis |
---|---|
BST_CHECKED |
Pole wyboru jest zaznaczone. |
BST_UNCHECKED |
Pole wyboru nie jest zaznaczone. |
BST_INDETERMINATE |
Stan pola wyboru jest nieokreślony. |
CCheckListBox::GetCheckStyle
Wywołaj tę funkcję, aby uzyskać styl pola wyboru.
UINT GetCheckStyle();
Wartość zwracana
Styl pól wyboru kontrolki.
Uwagi
Aby uzyskać informacje na temat możliwych stylów, zobacz SetCheckStyle
.
CCheckListBox::IsEnabled
Wywołaj tę funkcję, aby określić, czy element jest włączony.
BOOL IsEnabled(int nIndex);
Parametry
nIndex
Indeks elementu.
Wartość zwracana
Nonzero, jeśli element jest włączony; w przeciwnym razie 0.
CCheckListBox::MeasureItem
Wywoływana przez strukturę po utworzeniu pola listy kontrolnej z stylem niezdefaultowym.
virtual void MeasureItem(LPMEASUREITEMSTRUCT lpMeasureItemStruct);
Parametry
lpMeasureItemStruct
Długi wskaźnik do MEASUREITEMSTRUCT
struktury.
Uwagi
Domyślnie ta funkcja składowa nic nie robi. Zastąpi MEASUREITEMSTRUCT
tę funkcję składową i wypełnij strukturę, aby poinformować system Windows o wymiarach elementów listy kontrolnej. Jeśli pole listy kontrolnej zostanie utworzone ze stylem LBS_OWNERDRAWVARIABLE
, struktura wywołuje tę funkcję składową dla każdego elementu w polu listy. W przeciwnym razie ten element członkowski jest wywoływany tylko raz.
CCheckListBox::OnGetCheckPosition
Struktura wywołuje tę funkcję, aby uzyskać pozycję i rozmiar pola wyboru w elemencie.
virtual CRect OnGetCheckPosition(
CRect rectItem,
CRect rectCheckBox);
Parametry
rectItem
Pozycja i rozmiar elementu listy.
rectCheckBox
Domyślne położenie i rozmiar pola wyboru elementu.
Wartość zwracana
Położenie i rozmiar pola wyboru elementu.
Uwagi
Domyślna implementacja zwraca tylko domyślną pozycję i rozmiar pola wyboru (rectCheckBox
). Domyślnie pole wyboru jest wyrównane w lewym górnym rogu elementu i jest standardowym rozmiarem pola wyboru. Mogą wystąpić przypadki, w których pola wyboru mają być zaznaczone po prawej stronie lub mają być większe lub mniejsze pole wyboru. W takich przypadkach przesłoń OnGetCheckPosition
, aby zmienić położenie pola wyboru i rozmiar w elemencie.
CCheckListBox::SetCheck
Ustawia stan określonego pola wyboru.
void SetCheck(
int nIndex,
int nCheck);
Parametry
nIndex
Indeks zerowy pola wyboru, który znajduje się w polu listy.
nCheck
Stan przycisku dla określonego pola wyboru. Zobacz sekcję Uwagi, aby uzyskać możliwe wartości.
Uwagi
W poniższej tabeli wymieniono możliwe wartości parametru nCheck
.
Wartość | Opis |
---|---|
BST_CHECKED |
Zaznacz określone pole wyboru. |
BST_UNCHECKED |
Wyczyść określone pole wyboru. |
BST_INDETERMINATE |
Ustaw określony stan pola wyboru na nieokreślony. Ten stan jest dostępny tylko wtedy, gdy styl pola wyboru to BS_AUTO3STATE lub BS_3STATE . Aby uzyskać więcej informacji, zobacz Style przycisków. |
CCheckListBox::SetCheckStyle
Wywołaj tę funkcję, aby ustawić styl pól wyboru w polu listy kontrolnej.
void SetCheckStyle(UINT nStyle);
Parametry
nStyle
Określa styl pól wyboru w polu listy kontrolnej.
Uwagi
Prawidłowe style to:
BS_CHECKBOX
BS_AUTOCHECKBOX
BS_AUTO3STATE
BS_3STATE
Aby uzyskać informacje na temat tych stylów, zobacz Style przycisków.