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 CDialogklasy ), 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 CListBoxelementu ):

  • 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

CObject

CCmdTarget

CWnd

CListBox

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 CCheckListBoxklasy , 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 Createmetodę , 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_NCCREATEkomunikaty , WM_CREATE, WM_NCCALCSIZEi WM_GETMINMAXINFO do kontrolki pola kontrolnego.

Te komunikaty są domyślnie obsługiwane przez OnNcCreatefunkcje składowe , OnCreate, OnNcCalcSizei 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 OnCreatena przykład , aby wykonać wymaganą inicjację dla nowej klasy.

Zastosuj następujące style okna do kontrolki pola wyboru:

  • WS_CHILD Zawsze

  • WS_VISIBLE Zwykle

  • WS_DISABLED Rzadko

  • WS_VSCROLL Aby dodać pionowy pasek przewijania

  • WS_HSCROLL Aby dodać poziomy pasek przewijania

  • WS_GROUP Aby grupować kontrolki

  • WS_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_OWNERVARIABLEwartość , 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.

Zobacz też

Przykład MFC TSTCON
CListBox Klasa
Wykres hierarchii