Klasa CListBoxCListBox Class

Oferuje funkcje pola listy systemu Windows.Provides the functionality of a Windows list box.

SkładniaSyntax

class CListBox : public CWnd

Elementy członkowskieMembers

Konstruktory publicznePublic Constructors

NazwaName OpisDescription
CListBox:: CListBoxCListBox::CListBox Konstruuje CListBox obiekt.Constructs a CListBox object.

Metody publicznePublic Methods

NazwaName OpisDescription
CListBox:: AddStringCListBox::AddString Dodaje ciąg do pola listy.Adds a string to a list box.
CListBox:: CharToItemCListBox::CharToItem Przesłoń, aby zapewnić niestandardową obsługę WM_CHAR dla pól listy rysowania przez właściciela, które nie zawierają ciągów.Override to provide custom WM_CHAR handling for owner-draw list boxes which don't have strings.
CListBox:: CompareItemCListBox::CompareItem Wywoływane przez platformę, by określić pozycję nowego elementu w sortowanym polu listy rozwijanej przez właściciela.Called by the framework to determine the position of a new item in a sorted owner-draw list box.
CListBox:: CreateCListBox::Create Tworzy pole listy systemu Windows i dołącza je do CListBox obiektu.Creates the Windows list box and attaches it to the CListBox object.
CListBox::D eleteItemCListBox::DeleteItem Wywoływane przez platformę, gdy użytkownik usuwa element z pola listy rysowania przez właściciela.Called by the framework when the user deletes an item from an owner-draw list box.
CListBox::D eleteStringCListBox::DeleteString Usuwa ciąg z pola listy.Deletes a string from a list box.
CListBox::D IRCListBox::Dir Dodaje nazwy plików, dyski lub oba z bieżącego katalogu do pola listy.Adds filenames, drives, or both from the current directory to a list box.
CListBox::D rawItemCListBox::DrawItem Wywoływane przez platformę, gdy wizualny aspekt pola listy rysowania przez właściciela zmienia się.Called by the framework when a visual aspect of an owner-draw list box changes.
CListBox:: FindStrCListBox::FindString Wyszukuje ciąg w polu listy.Searches for a string in a list box.
CListBox:: FindStringExactCListBox::FindStringExact Znajduje pierwszy ciąg pola listy, który pasuje do określonego ciągu.Finds the first list-box string that matches a specified string.
CListBox:: GetAnchorIndexCListBox::GetAnchorIndex Pobiera indeks (liczony od zera) bieżącego elementu zakotwiczenia w polu listy.Retrieves the zero-based index of the current anchor item in a list box.
CListBox:: GetCaretIndexCListBox::GetCaretIndex Określa indeks elementu, który ma prostokąt fokus w polu listy wielokrotnego wyboru.Determines the index of the item that has the focus rectangle in a multiple-selection list box.
CListBox:: GetCountCListBox::GetCount Zwraca liczbę ciągów w polu listy.Returns the number of strings in a list box.
CListBox:: GetCurSelCListBox::GetCurSel Zwraca indeks (liczony od zera) aktualnie zaznaczonego ciągu w polu listy.Returns the zero-based index of the currently selected string in a list box.
CListBox:: GetHorizontalExtentCListBox::GetHorizontalExtent Zwraca szerokość w pikselach, którą pole listy można przewijać w poziomie.Returns the width in pixels that a list box can be scrolled horizontally.
CListBox:: GetItemDataCListBox::GetItemData Zwraca wartość skojarzoną z elementem listy.Returns a value associated with the list-box item.
CListBox:: GetItemDataPtrCListBox::GetItemDataPtr Zwraca wskaźnik do elementu pola listy.Returns a pointer to a list-box item.
CListBox:: GetItemHeightCListBox::GetItemHeight Określa wysokość elementów w polu listy.Determines the height of items in a list box.
CListBox:: GetItemRectCListBox::GetItemRect Zwraca prostokąt ograniczenia elementu listy, który jest aktualnie wyświetlany.Returns the bounding rectangle of the list-box item as it is currently displayed.
CListBox:: GetListBoxInfoCListBox::GetListBoxInfo Pobiera liczbę elementów na kolumnę.Retrieves the number of items per column.
CListBox:: getLocaleCListBox::GetLocale Pobiera identyfikator ustawień regionalnych dla pola listy.Retrieves the locale identifier for a list box.
CListBox:: GetSelCListBox::GetSel Zwraca stan zaznaczenia elementu listy.Returns the selection state of a list-box item.
CListBox:: GetSelCountCListBox::GetSelCount Zwraca liczbę ciągów aktualnie wybranych w polu listy wielokrotnego wyboru.Returns the number of strings currently selected in a multiple-selection list box.
CListBox:: GetSelItemsCListBox::GetSelItems Zwraca indeksy ciągów aktualnie wybranych w polu listy.Returns the indices of the strings currently selected in a list box.
CListBox:: gettextCListBox::GetText Kopiuje element pola listy do buforu.Copies a list-box item into a buffer.
CListBox:: GetTextLenCListBox::GetTextLen Zwraca długość w bajtach elementu pola listy.Returns the length in bytes of a list-box item.
CListBox:: GetTopIndexCListBox::GetTopIndex Zwraca indeks pierwszego widocznego ciągu w polu listy.Returns the index of the first visible string in a list box.
CListBox:: InitStorageCListBox::InitStorage Wstępnie przydziela bloki pamięci dla elementów pola listy i ciągów.Preallocates blocks of memory for list box items and strings.
CListBox:: InsertStringCListBox::InsertString Wstawia ciąg w określonej lokalizacji w polu listy.Inserts a string at a specific location in a list box.
CListBox:: ItemFromPointCListBox::ItemFromPoint Zwraca indeks elementu pola listy znajdującego się w najbliższym punkcie.Returns the index of the list-box item nearest a point.
CListBox:: MeasureItemCListBox::MeasureItem Wywoływane przez platformę, gdy zostanie utworzone pole listy rysowania przez właściciela, aby określić wymiary pola listy.Called by the framework when an owner-draw list box is created to determine list-box dimensions.
CListBox:: ResetContentCListBox::ResetContent Czyści wszystkie wpisy w polu listy.Clears all the entries from a list box.
CListBox:: SelectStringCListBox::SelectString Wyszukuje i wybiera ciąg w polu listy z pojedynczym wyborem.Searches for and selects a string in a single-selection list box.
CListBox:: SelItemRangeCListBox::SelItemRange Wybiera lub anuluje zakres ciągów w polu listy wielokrotnego wyboru.Selects or deselects a range of strings in a multiple-selection list box.
CListBox:: SetAnchorIndexCListBox::SetAnchorIndex Ustawia kotwicę w polu listy wielokrotnego wyboru, aby rozpocząć rozszerzane zaznaczenie.Sets the anchor in a multiple-selection list box to begin an extended selection.
CListBox:: SetCaretIndexCListBox::SetCaretIndex Ustawia prostokąt fokusu na element o określonym indeksie w polu listy wielokrotnego wyboru.Sets the focus rectangle to the item at the specified index in a multiple-selection list box.
CListBox:: SetColumnWidthCListBox::SetColumnWidth Ustawia szerokość kolumny wielokolumnowego pola listy.Sets the column width of a multicolumn list box.
CListBox:: SetCurSelCListBox::SetCurSel Wybiera ciąg w polu listy.Selects a list-box string.
CListBox:: SetHorizontalExtentCListBox::SetHorizontalExtent Ustawia szerokość w pikselach, którą pole listy można przewijać w poziomie.Sets the width in pixels that a list box can be scrolled horizontally.
CListBox:: SetItemDataCListBox::SetItemData Ustawia wartość skojarzoną z elementem listy.Sets a value associated with the list-box item.
CListBox:: SetItemDataPtrCListBox::SetItemDataPtr Ustawia wskaźnik do elementu pola listy.Sets a pointer to the list-box item.
CListBox:: SetItemHeightCListBox::SetItemHeight Ustawia wysokość elementów w polu listy.Sets the height of items in a list box.
CListBox:: setlocaleCListBox::SetLocale Ustawia identyfikator ustawień regionalnych dla pola listy.Sets the locale identifier for a list box.
CListBox:: SetSelCListBox::SetSel Zaznacza lub anuluje zaznaczenie elementu listy w polu listy wielokrotnego wyboru.Selects or deselects a list-box item in a multiple-selection list box.
CListBox:: SetTabStopsCListBox::SetTabStops Ustawia położenie tabulatorów w polu listy.Sets the tab-stop positions in a list box.
CListBox:: SetTopIndexCListBox::SetTopIndex Ustawia indeks (liczony od zera) pierwszego widocznego ciągu w polu listy.Sets the zero-based index of the first visible string in a list box.
CListBox:: VKeyToItemCListBox::VKeyToItem Przesłoń, aby zapewnić obsługę niestandardowych WM_KEYDOWN dla pól listy z ustawionym stylem LBS_WANTKEYBOARDINPUT.Override to provide custom WM_KEYDOWN handling for list boxes with the LBS_WANTKEYBOARDINPUT style set.

UwagiRemarks

W polu listy zostanie wyświetlona lista elementów, takich jak nazwy plików, które użytkownik może wyświetlać i wybierać.A list box displays a list of items, such as filenames, that the user can view and select.

W polu listy z pojedynczym wyborem użytkownik może wybrać tylko jeden element.In a single-selection list box, the user can select only one item. W polu listy z wielokrotnym wyborem można wybrać zakres elementów.In a multiple-selection list box, a range of items can be selected. Gdy użytkownik wybierze element, zostanie wyróżniony, a pole listy wysyła komunikat powiadomienia do okna nadrzędnego.When the user selects an item, it is highlighted and the list box sends a notification message to the parent window.

Pole listy można utworzyć na podstawie szablonu okna dialogowego lub bezpośrednio w kodzie.You can create a list box either from a dialog template or directly in your code. Aby utworzyć go bezpośrednio, Skonstruuj CListBox obiekt, a następnie wywołaj funkcję Utwórz element członkowski, aby utworzyć kontrolkę pole listy systemu Windows i dołączyć ją do CListBox obiektu.To create it directly, construct the CListBox object, then call the Create member function to create the Windows list-box control and attach it to the CListBox object. Aby użyć pola listy w szablonie okna dialogowego, zadeklaruj zmienną pola listy w klasie okna dialogowego, a następnie użyj DDX_Control w funkcji klasy okna dialogowego, DoDataExchange Aby połączyć zmienną członkowską z kontrolką.To use a list box in a dialog template, declare a list-box variable in your dialog box class, then use DDX_Control in your dialog box class's DoDataExchange function to connect the member variable to the control. (jest to wykonywane automatycznie po dodaniu zmiennej sterującej do klasy okna dialogowego).(this is done for you automatically when you add a control variable to your dialog box class.)

Konstrukcja może być procesem jednoetapowym klasy pochodzącej od CListBox .Construction can be a one-step process in a class derived from CListBox. Napisz konstruktora dla klasy pochodnej i Wywołaj Create z konstruktora.Write a constructor for the derived class and call Create from within the constructor.

Jeśli chcesz obsługiwać komunikaty powiadomień systemu Windows wysyłane przez pole listy do jego elementu nadrzędnego (zazwyczaj klasy pochodnej z CDialog), Dodaj wpis mapy komunikatów i funkcję elementu członkowskiego obsługi komunikatów do klasy nadrzędnej dla każdego komunikatu.If you want to handle Windows notification messages sent by a list box to its parent (usually a class derived from CDialog), add a message-map entry and message-handler member function to the parent class for each message.

Każdy wpis mapy komunikatów przyjmuje następującą formę:Each message-map entry takes the following form:

ON_Notification( id, memberFxn )

gdzie id określa identyfikator okna podrzędnego kontrolki pola listy wysyłającej powiadomienie i memberFxn jest nazwą nadrzędnej funkcji członkowskiej, która została zapisywana w celu obsługi powiadomienia.where id specifies the child window ID of the list-box control sending the notification and memberFxn is the name of the parent member function you have written to handle the notification.

Prototyp funkcji elementu nadrzędnego jest następujący:The parent's function prototype is as follows:

afx_msg void memberFxn( );

Poniżej znajduje się lista potencjalnych wpisów mapy komunikatów oraz opis przypadków, w których zostałyby one przesłane do elementu nadrzędnego:Following is a list of potential message-map entries and a description of the cases in which they would be sent to the parent:

  • ON_LBN_DBLCLK użytkownik kliknie dwukrotnie ciąg w polu listy.ON_LBN_DBLCLK The user double-clicks a string in a list box. Tylko pole listy, które ma styl LBS_NOTIFY , wyśle ten komunikat z powiadomieniem.Only a list box that has the LBS_NOTIFY style will send this notification message.

  • ON_LBN_ERRSPACE pole listy nie może przydzielić wystarczającej ilości pamięci do spełnienia żądania.ON_LBN_ERRSPACE The list box cannot allocate enough memory to meet the request.

  • ON_LBN_KILLFOCUS pole listy utraci fokus wprowadzania.ON_LBN_KILLFOCUS The list box is losing the input focus.

  • ON_LBN_SELCANCEL bieżące zaznaczenie pola listy zostało anulowane.ON_LBN_SELCANCEL The current list-box selection is canceled. Ten komunikat jest wysyłany tylko wtedy, gdy pole listy ma styl LBS_NOTIFY.This message is only sent when a list box has the LBS_NOTIFY style.

  • ON_LBN_SELCHANGE zaznaczenie w polu listy zostało zmienione.ON_LBN_SELCHANGE The selection in the list box has changed. To powiadomienie nie jest wysyłane, jeśli zaznaczenie zostanie zmienione przez funkcję członkowską CListBox:: SetCurSel .This notification is not sent if the selection is changed by the CListBox::SetCurSel member function. To powiadomienie ma zastosowanie tylko do pola listy mającego styl LBS_NOTIFY.This notification applies only to a list box that has the LBS_NOTIFY style. Wiadomość z powiadomieniem LBN_SELCHANGE jest wysyłana do pola listy wielokrotnego wyboru za każdym razem, gdy użytkownik naciśnie klawisz Strzałka, nawet jeśli zaznaczenie nie zostanie zmienione.The LBN_SELCHANGE notification message is sent for a multiple-selection list box whenever the user presses an arrow key, even if the selection does not change.

  • ON_LBN_SETFOCUS pole listy otrzymuje fokus wprowadzania.ON_LBN_SETFOCUS The list box is receiving the input focus.

  • ON_WM_CHARTOITEM pole listy rysowania przez właściciela, które nie ma ciągów odbiera komunikat WM_CHAR.ON_WM_CHARTOITEM An owner-draw list box that has no strings receives a WM_CHAR message.

  • ON_WM_VKEYTOITEM pole listy z stylem LBS_WANTKEYBOARDINPUT otrzymuje komunikat WM_KEYDOWN.ON_WM_VKEYTOITEM A list box with the LBS_WANTKEYBOARDINPUT style receives a WM_KEYDOWN message.

Jeśli utworzysz CListBox obiekt w oknie dialogowym (za pomocą zasobu okna dialogowego), CListBox obiekt zostanie automatycznie zniszczony, gdy użytkownik zamknie okno dialogowe.If you create a CListBox object within a dialog box (through a dialog resource), the CListBox object is automatically destroyed when the user closes the dialog box.

Jeśli utworzysz CListBox obiekt w oknie, może zajść potrzeba zniszczenia CListBox obiektu.If you create a CListBox object within a window, you may need to destroy the CListBox object. Jeśli utworzysz CListBox obiekt na stosie, zostanie on zniszczony automatycznie.If you create the CListBox object on the stack, it is destroyed automatically. Jeśli obiekt jest tworzony CListBox na stercie przy użyciu new funkcji, należy wywołać delete obiekt, aby zniszczyć go, gdy użytkownik zamknie okno nadrzędne.If you create the CListBox object on the heap by using the new function, you must call delete on the object to destroy it when the user closes the parent window.

W przypadku przydzielenia pamięci w CListBox obiekcie Zastąp CListBox destruktor, aby usunąć alokację.If you allocate any memory in the CListBox object, override the CListBox destructor to dispose of the allocation.

Hierarchia dziedziczeniaInheritance Hierarchy

CObjectCObject

CCmdTargetCCmdTarget

CWndCWnd

CListBox

WymaganiaRequirements

Nagłówek: afxwin. hHeader: afxwin.h

CListBox:: AddStringCListBox::AddString

Dodaje ciąg do pola listy.Adds a string to a list box.

int AddString(LPCTSTR lpszItem);

ParametryParameters

lpszItemlpszItem
Wskazuje ciąg zakończony znakiem null, który ma zostać dodany.Points to the null-terminated string that is to be added.

Wartość zwracanaReturn Value

Indeks (liczony od zera) do ciągu w polu listy.The zero-based index to the string in the list box. Wartość zwracana jest LB_ERR w przypadku wystąpienia błędu; wartość zwracana jest LB_ERRSPACE, jeśli jest za mało miejsca, aby można było zapisać nowy ciąg.The return value is LB_ERR if an error occurs; the return value is LB_ERRSPACE if insufficient space is available to store the new string.

UwagiRemarks

Jeśli pole listy nie zostało utworzone za pomocą stylu LBS_SORT , ciąg zostanie dodany na końcu listy.If the list box was not created with the LBS_SORT style, the string is added to the end of the list. W przeciwnym razie ciąg zostanie wstawiony do listy, a lista jest posortowana.Otherwise, the string is inserted into the list, and the list is sorted. Jeśli pole listy zostało utworzone przy użyciu LBS_SORT stylu, ale nie stylu LBS_HASSTRINGS , struktura sortuje listę według jednego lub większej liczby wywołań CompareItem funkcji składowej.If the list box was created with the LBS_SORT style but not the LBS_HASSTRINGS style, the framework sorts the list by one or more calls to the CompareItem member function.

Użyj InsertString , aby wstawić ciąg do określonej lokalizacji w polu listy.Use InsertString to insert a string into a specific location within the list box.

PrzykładExample

// Add 10 items to the list box.
CString str;
for (int i = 0; i < 10; i++)
{
   str.Format(_T("item string %d"), i);
   m_myListBox.AddString(str);
}

CListBox:: CharToItemCListBox::CharToItem

Wywoływane przez platformę, gdy okno listy nadrzędnej odbierze komunikat WM_CHARTOITEM z pola listy.Called by the framework when the list box's parent window receives a WM_CHARTOITEM message from the list box.

virtual int CharToItem(
    UINT nKey,
    UINT nIndex);

ParametryParameters

nKeynKey
Kod ANSI znaku wpisanego przez użytkownika.The ANSI code of the character the user typed.

nIndexnIndex
Bieżąca pozycja karetki z polem listy.The current position of the list-box caret.

Wartość zwracanaReturn Value

Zwraca wartość-1 lub-2 w przypadku braku dalszej akcji lub nieujemnej liczby, aby określić indeks elementu pola listy, w którym ma zostać wykonana domyślna akcja dla nacionięcia klawisza.Returns - 1 or - 2 for no further action or a nonnegative number to specify an index of a list-box item on which to perform the default action for the keystroke. Domyślna implementacja zwraca wartość-1.The default implementation returns - 1.

UwagiRemarks

Wiadomość WM_CHARTOITEM jest wysyłana przez pole listy, gdy odbierze wiadomość WM_CHAR, ale tylko wtedy, gdy pole listy spełnia wszystkie te kryteria:The WM_CHARTOITEM message is sent by the list box when it receives a WM_CHAR message, but only if the list box meets all of these criteria:

  • Jest polem listy rysowania przez właściciela.Is an owner-draw list box.

  • Nie ma ustawionego stylu LBS_HASSTRINGS .Does not have the LBS_HASSTRINGS style set.

  • Zawiera co najmniej jeden element.Has at least one item.

Nigdy nie należy wywoływać tej funkcji samodzielnie.You should never call this function yourself. Zastąp tę funkcję, aby zapewnić własną niestandardową obsługę komunikatów klawiatury.Override this function to provide your own custom handling of keyboard messages.

W przesłonięciu należy zwrócić wartość, aby poznać strukturę działania wykonywanego przez użytkownika.In your override, you must return a value to tell the framework what action you performed. Zwracana wartość-1 lub-2 wskazuje, że zostały obsłużone wszystkie aspekty wyboru elementu i nie wymaga żadnych dalszych akcji przez pole listy.A return value of - 1 or - 2 indicates that you handled all aspects of selecting the item and requires no further action by the list box. Przed zwróceniem wartości-1 lub-2 można ustawić zaznaczenie lub przenieść karetkę lub oba te elementy.Before returning - 1 or - 2, you could set the selection or move the caret or both. Aby ustawić wybór, użyj SetCurSel lub SetSel.To set the selection, use SetCurSel or SetSel. Aby przenieść karetkę, użyj SetCaretIndex.To move the caret, use SetCaretIndex.

Wartość zwracana 0 lub większa Określa indeks elementu w polu listy i wskazuje, że pole listy powinno wykonać akcję domyślną dla naciśnięcia klawisza dla danego elementu.A return value of 0 or greater specifies the index of an item in the list box and indicates that the list box should perform the default action for the keystroke on the given item.

PrzykładExample

// CMyODListBox is my owner-drawn list box derived from CListBox. This
// example moves the caret down one item on a numeric key and up one item
// on an alphabetic key. The list box control was created with the
// following code:
//   m_myODListBox.Create(
//      WS_CHILD|WS_VISIBLE|WS_BORDER|WS_HSCROLL|WS_VSCROLL|
//      LBS_SORT|LBS_MULTIPLESEL|LBS_OWNERDRAWVARIABLE|LBS_WANTKEYBOARDINPUT,
//      CRect(10,250,200,450), pParentWnd, IDC_MYODLISTBOX);
//
int CMyODListBox::CharToItem(UINT nChar, UINT nIndex)
{
   // On a numeric key, move the caret up one item.
   if (isdigit(nChar) && (nIndex > 0))
   {
      SetCaretIndex(nIndex - 1);
   }
   // On an alphabetic key, move the caret down one item.
   else if (isalpha(nChar) && (nIndex < (UINT)GetCount()))
   {
      SetCaretIndex(nIndex + 1);
   }

   // Do not perform any default processing.
   return -1;
}

CListBox:: CListBoxCListBox::CListBox

Konstruuje CListBox obiekt.Constructs a CListBox object.

CListBox();

UwagiRemarks

Obiekt jest konstruowany CListBox w dwóch krokach.You construct a CListBox object in two steps. Najpierw Wywołaj konstruktora, ClistBox a następnie Wywołaj Create , który inicjuje pole listy systemu Windows i dołącza go do CListBox .First, call the constructor ClistBox and then call Create, which initializes the Windows list box and attaches it to the CListBox.

PrzykładExample

// Declare a local CListBox object.
CListBox myListBox;

// Declare a dynamic CListBox object.
CListBox *pmyListBox = new CListBox;

CListBox:: CompareItemCListBox::CompareItem

Wywoływane przez platformę, by określić względne położenie nowego elementu w sortowanym polu listy rozwijanej właściciela.Called by the framework to determine the relative position of a new item in a sorted owner-draw list box.

virtual int CompareItem(LPCOMPAREITEMSTRUCT lpCompareItemStruct);

ParametryParameters

lpCompareItemStructlpCompareItemStruct
Długi wskaźnik do COMPAREITEMSTRUCT struktury.A long pointer to a COMPAREITEMSTRUCT structure.

Wartość zwracanaReturn Value

Wskazuje względne położenie dwóch elementów opisanych w strukturze COMPAREITEMSTRUCT .Indicates the relative position of the two items described in the COMPAREITEMSTRUCT structure. Może to być dowolna z następujących wartości:It may be any of the following values:

WartośćValue ZnaczenieMeaning
-1-1 Element 1 sortuje przed elementem 2.Item 1 sorts before item 2.
00 Element 1 i element 2 sortują te same.Item 1 and item 2 sort the same.
11 Element 1 sortuje po elemencie 2.Item 1 sorts after item 2.

Opis struktury można znaleźć w temacie CWnd:: OnCompareItem COMPAREITEMSTRUCT .See CWnd::OnCompareItem for a description of the COMPAREITEMSTRUCT structure.

UwagiRemarks

Domyślnie ta funkcja członkowska nic nie robi.By default, this member function does nothing. Jeśli utworzysz pole listy rysowania przez właściciela z stylem LBS_SORT, musisz zastąpić tę funkcję elementu członkowskiego, aby pomóc w strukturze sortowania nowych elementów dodanych do pola listy.If you create an owner-draw list box with the LBS_SORT style, you must override this member function to assist the framework in sorting new items added to the list box.

PrzykładExample

// CMyODListBox is my owner-drawn list box derived from CListBox. This
// example compares two items using _tcscmp to sort items in reverse
// alphabetical order. The list box control was created with the
// following code:
//   m_myODListBox.Create(
//      WS_CHILD|WS_VISIBLE|WS_BORDER|WS_HSCROLL|WS_VSCROLL|
//      LBS_SORT|LBS_MULTIPLESEL|LBS_OWNERDRAWVARIABLE|LBS_WANTKEYBOARDINPUT,
//      CRect(10,250,200,450), pParentWnd, IDC_MYODLISTBOX);
//
int CMyODListBox::CompareItem(LPCOMPAREITEMSTRUCT lpCompareItemStruct)
{
   ASSERT(lpCompareItemStruct->CtlType == ODT_LISTBOX);
   LPCTSTR lpszText1 = (LPCTSTR)lpCompareItemStruct->itemData1;
   ASSERT(lpszText1 != NULL);
   LPCTSTR lpszText2 = (LPCTSTR)lpCompareItemStruct->itemData2;
   ASSERT(lpszText2 != NULL);

   return _tcscmp(lpszText2, lpszText1);
}

CListBox:: CreateCListBox::Create

Tworzy pole listy systemu Windows i dołącza je do CListBox obiektu.Creates the Windows list box and attaches it to the CListBox object.

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

ParametryParameters

dwStyledwStyle
Określa styl pola listy.Specifies the style of the list box. Zastosuj dowolną kombinację stylów pola listy do pola.Apply any combination of list-box styles to the box.

cinaniarect
Określa rozmiar i położenie pola listy.Specifies the list-box size and position. Może być CRect obiektem lub RECT strukturą.Can be either a CRect object or a RECT structure.

pParentWndpParentWnd
Określa okno nadrzędne pola listy (zazwyczaj CDialog obiekt).Specifies the list box's parent window (usually a CDialog object). Nie może mieć wartości NULL.It must not be NULL.

nIDnID
Określa identyfikator formantu pola listy.Specifies the list box's control ID.

Wartość zwracanaReturn Value

Niezerowe, jeśli pomyślne; w przeciwnym razie 0.Nonzero if successful; otherwise 0.

UwagiRemarks

Obiekt jest konstruowany CListBox w dwóch krokach.You construct a CListBox object in two steps. Najpierw Wywołaj konstruktora, a następnie Wywołaj Create , który inicjuje pole listy systemu Windows i dołącza go do CListBox obiektu.First, call the constructor and then call Create, which initializes the Windows list box and attaches it to the CListBox object.

Gdy Create jest wykonywane, system Windows wysyła wiadomości WM_NCCREATE, WM_CREATE, WM_NCCALCSIZEi WM_GETMINMAXINFO do kontrolki pole listy.When Create executes, Windows sends the WM_NCCREATE, WM_CREATE, WM_NCCALCSIZE, and WM_GETMINMAXINFO messages to the list-box control.

Te komunikaty są domyślnie obsługiwane przez funkcje elementu członkowskiego OnNcCreate, OnCreate, OnNcCalcSizei OnGetMinMaxInfo w CWnd klasie bazowej.These messages are handled by default by the OnNcCreate, OnCreate, OnNcCalcSize, and OnGetMinMaxInfo member functions in the CWnd base class. Aby zwiększyć domyślną obsługę komunikatów, należy utworzyć klasę z CListBox , dodać mapę komunikatów do nowej klasy i zastąpić poprzednią funkcję elementu członkowskiego programu obsługi komunikatów.To extend the default message handling, derive a class from CListBox, add a message map to the new class, and override the preceding message-handler member functions. Przesłoń OnCreate , na przykład, aby wykonać wymaganą inicjalizację dla nowej klasy.Override OnCreate, for example, to perform needed initialization for a new class.

Zastosuj następujące Style okna do kontrolki pole listy.Apply the following window styles to a list-box control.

  • WS_CHILD zawszeWS_CHILD Always

  • WS_VISIBLE zwykleWS_VISIBLE Usually

  • WS_DISABLED rzadkoWS_DISABLED Rarely

  • WS_VSCROLL dodać pionowe paski przewijaniaWS_VSCROLL To add a vertical scroll bar

  • WS_HSCROLL dodać poziomego paska przewijaniaWS_HSCROLL To add a horizontal scroll bar

  • WS_GROUP do grup formantówWS_GROUP To group controls

  • WS_TABSTOP zezwolić na tabulację w tym formancieWS_TABSTOP To allow tabbing to this control

PrzykładExample

// pParentWnd is a pointer to the parent window.
m_myListBox.Create(WS_CHILD | WS_VISIBLE | LBS_STANDARD | WS_HSCROLL,
                   CRect(10, 10, 200, 200), pParentWnd, IDC_MYLISTBOX);

CListBox::D eleteItemCListBox::DeleteItem

Wywoływane przez platformę, gdy użytkownik usuwa element z obiektu rysowania przez właściciela CListBox lub niszczy pole listy.Called by the framework when the user deletes an item from an owner-draw CListBox object or destroys the list box.

virtual void DeleteItem(LPDELETEITEMSTRUCT lpDeleteItemStruct);

ParametryParameters

lpDeleteItemStructlpDeleteItemStruct
Długi wskaźnik do struktury DELETEITEMSTRUCT systemu Windows, który zawiera informacje o usuniętym elemencie.A long pointer to a Windows DELETEITEMSTRUCT structure that contains information about the deleted item.

UwagiRemarks

Domyślna implementacja tej funkcji nic nie robi.The default implementation of this function does nothing. Zastąp tę funkcję, aby ponownie narysować pole listy rysowania przez właściciela zgodnie z wymaganiami.Override this function to redraw an owner-draw list box as needed.

Opis struktury można znaleźć w temacie CWnd:: OnDeleteItem DELETEITEMSTRUCT .See CWnd::OnDeleteItem for a description of the DELETEITEMSTRUCT structure.

PrzykładExample

// CMyODListBox is my owner-drawn list box derived from CListBox. This
// example simply frees the item's text. The list box control was created
// with the following code:
//   m_myODListBox.Create(
//      WS_CHILD|WS_VISIBLE|WS_BORDER|WS_HSCROLL|WS_VSCROLL|
//      LBS_SORT|LBS_MULTIPLESEL|LBS_OWNERDRAWVARIABLE|LBS_WANTKEYBOARDINPUT,
//      CRect(10,250,200,450), pParentWnd, IDC_MYODLISTBOX);
//
void CMyODListBox::DeleteItem(LPDELETEITEMSTRUCT lpDeleteItemStruct)
{
   ASSERT(lpDeleteItemStruct->CtlType == ODT_LISTBOX);
   LPVOID lpszText = (LPVOID)lpDeleteItemStruct->itemData;
   ASSERT(lpszText != NULL);

   free(lpszText);

   CListBox::DeleteItem(lpDeleteItemStruct);
}

CListBox::D eleteStringCListBox::DeleteString

Usuwa element z pozycji nIndex w polu listy.Deletes the item in position nIndex from the list box.

int DeleteString(UINT nIndex);

ParametryParameters

nIndexnIndex
Określa indeks (liczony od zera) ciągu, który ma zostać usunięty.Specifies the zero-based index of the string to be deleted.

Wartość zwracanaReturn Value

Liczba ciągów pozostałych na liście.A count of the strings remaining in the list. Wartość zwracana jest LB_ERR, jeśli nIndex Określa indeks większy niż liczba elementów na liście.The return value is LB_ERR if nIndex specifies an index greater than the number of items in the list.

UwagiRemarks

Wszystkie elementy po nIndex teraz przechodzą w dół o jedno miejsce.All items following nIndex now move down one position. Na przykład, jeśli pole listy zawiera dwa elementy, usunięcie pierwszego elementu spowoduje, że pozostały element zostanie teraz w pierwszej pozycji.For example, if a list box contains two items, deleting the first item will cause the remaining item to now be in the first position. nIndex= 0 dla elementu w pierwszej pozycji.nIndex=0 for the item in the first position.

PrzykładExample

// Delete every other item from the list box.
for (int i = 0; i < m_myListBox.GetCount(); i++)
{
   m_myListBox.DeleteString(i);
}

CListBox::D IRCListBox::Dir

Dodaje listę nazw plików, dysków lub obu do pola listy.Adds a list of filenames, drives, or both to a list box.

int Dir(
    UINT attr,
    LPCTSTR lpszWildCard);

ParametryParameters

atrybutattr
Może być dowolną kombinacją enum wartości opisanych w CFile::GetStatu slub dowolną kombinację następujących wartości:Can be any combination of the enum values described in CFile::GetStatus, or any combination of the following values:

WartośćValue ZnaczenieMeaning
0x00000x0000 Plik może być odczytywany lub zapisywana.File can be read from or written to.
0x00010x0001 Plik może być odczytywany z, ale nie do zapisu.File can be read from but not written to.
0x00020x0002 Plik jest ukryty i nie znajduje się na liście katalogów.File is hidden and does not appear in a directory listing.
0x00040x0004 Plik jest plikiem systemowym.File is a system file.
0x00100x0010 Nazwa określona przez lpszWildCard określa katalog.The name specified by lpszWildCard specifies a directory.
0x00200x0020 Plik został zarchiwizowany.File has been archived.
0x40000x4000 Uwzględnij wszystkie dyski, które pasują do nazwy określonej przez lpszWildCard.Include all drives that match the name specified by lpszWildCard.
0x80000x8000 Flaga wyłączna.Exclusive flag. Jeśli ustawiono flagę wyłączną, wyświetlane są tylko pliki określonego typu.If the exclusive flag is set, only files of the specified type are listed. W przeciwnym razie pliki określonego typu są wymienione jako uzupełnienie plików "normal".Otherwise, files of the specified type are listed in addition to "normal" files.

lpszWildCardlpszWildCard
Wskazuje ciąg specyfikacji pliku.Points to a file-specification string. Ciąg może zawierać symbole wieloznaczne (na przykład *. * ).The string can contain wildcards (for example, *.*).

Wartość zwracanaReturn Value

Indeks (liczony od zera) ostatniej nazwy pliku dodany do listy.The zero-based index of the last filename added to the list. Wartość zwracana jest LB_ERR w przypadku wystąpienia błędu; wartość zwracana jest LB_ERRSPACE, jeśli jest za mało miejsca, aby można było przechowywać nowe ciągi.The return value is LB_ERR if an error occurs; the return value is LB_ERRSPACE if insufficient space is available to store the new strings.

PrzykładExample

// Add all the files and directories in the windows directory.
TCHAR lpszWinPath[MAX_PATH], lpszOldPath[MAX_PATH];
::GetWindowsDirectory(lpszWinPath, MAX_PATH);

::GetCurrentDirectory(MAX_PATH, lpszOldPath);
::SetCurrentDirectory(lpszWinPath);

m_myListBox.ResetContent();
m_myListBox.Dir(DDL_READWRITE | DDL_DIRECTORY, _T("*.*"));

::SetCurrentDirectory(lpszOldPath);

CListBox::D rawItemCListBox::DrawItem

Wywoływane przez platformę, gdy wizualny aspekt pola listy rysowania przez właściciela zmienia się.Called by the framework when a visual aspect of an owner-draw list box changes.

virtual void DrawItem(LPDRAWITEMSTRUCT lpDrawItemStruct);

ParametryParameters

lpDrawItemStructlpDrawItemStruct
Długi wskaźnik do struktury DRAWITEMSTRUCT , który zawiera informacje o wymaganym typie rysunku.A long pointer to a DRAWITEMSTRUCT structure that contains information about the type of drawing required.

UwagiRemarks

itemActionElementy i itemState składowe DRAWITEMSTRUCT struktury definiują akcję rysowania, która ma zostać wykonana.The itemAction and itemState members of the DRAWITEMSTRUCT structure define the drawing action that is to be performed.

Domyślnie ta funkcja członkowska nic nie robi.By default, this member function does nothing. Przesłoń tę funkcję elementu członkowskiego, aby zaimplementować rysowanie dla obiektu rysowania przez właściciela CListBox .Override this member function to implement drawing for an owner-draw CListBox object. Aplikacja powinna przywrócić wszystkie obiekty interfejsu GDI (Graphics Device Interface) wybrane dla kontekstu wyświetlania dostarczonego w lpDrawItemStruct przed zakończeniem tej funkcji elementu członkowskiego.The application should restore all graphics device interface (GDI) objects selected for the display context supplied in lpDrawItemStruct before this member function terminates.

Opis struktury można znaleźć w temacie CWnd:: OnDrawItem DRAWITEMSTRUCT .See CWnd::OnDrawItem for a description of the DRAWITEMSTRUCT structure.

PrzykładExample

// CMyODListBox is my owner-drawn list box derived from CListBox. This
// example draws an item's text centered vertically and horizontally. The
// list box control was created with the following code:
//   m_myODListBox.Create(
//      WS_CHILD|WS_VISIBLE|WS_BORDER|WS_HSCROLL|WS_VSCROLL|
//      LBS_SORT|LBS_MULTIPLESEL|LBS_OWNERDRAWVARIABLE|LBS_WANTKEYBOARDINPUT,
//      CRect(10,250,200,450), pParentWnd, IDC_MYODLISTBOX);
//
void CMyODListBox::DrawItem(LPDRAWITEMSTRUCT lpDrawItemStruct)
{
   ASSERT(lpDrawItemStruct->CtlType == ODT_LISTBOX);
   LPCTSTR lpszText = (LPCTSTR)lpDrawItemStruct->itemData;
   ASSERT(lpszText != NULL);
   CDC dc;

   dc.Attach(lpDrawItemStruct->hDC);

   // Save these value to restore them when done drawing.
   COLORREF crOldTextColor = dc.GetTextColor();
   COLORREF crOldBkColor = dc.GetBkColor();

   // If this item is selected, set the background color
   // and the text color to appropriate values. Also, erase
   // rect by filling it with the background color.
   if ((lpDrawItemStruct->itemAction | ODA_SELECT) &&
       (lpDrawItemStruct->itemState & ODS_SELECTED))
   {
      dc.SetTextColor(::GetSysColor(COLOR_HIGHLIGHTTEXT));
      dc.SetBkColor(::GetSysColor(COLOR_HIGHLIGHT));
      dc.FillSolidRect(&lpDrawItemStruct->rcItem,
                       ::GetSysColor(COLOR_HIGHLIGHT));
   }
   else
   {
      dc.FillSolidRect(&lpDrawItemStruct->rcItem, crOldBkColor);
   }

   // If this item has the focus, draw a red frame around the
   // item's rect.
   if ((lpDrawItemStruct->itemAction | ODA_FOCUS) &&
       (lpDrawItemStruct->itemState & ODS_FOCUS))
   {
      CBrush br(RGB(255, 0, 0));
      dc.FrameRect(&lpDrawItemStruct->rcItem, &br);
   }

   // Draw the text.
   dc.DrawText(
       lpszText,
       (int)_tcslen(lpszText),
       &lpDrawItemStruct->rcItem,
       DT_CENTER | DT_SINGLELINE | DT_VCENTER);

   // Reset the background color and the text color back to their
   // original values.
   dc.SetTextColor(crOldTextColor);
   dc.SetBkColor(crOldBkColor);

   dc.Detach();
}

CListBox:: FindStrCListBox::FindString

Znajduje pierwszy ciąg w polu listy, który zawiera określony prefiks bez zmiany pola listy.Finds the first string in a list box that contains the specified prefix without changing the list-box selection.

int FindString(
    int nStartAfter,
    LPCTSTR lpszItem) const;

ParametryParameters

nStartAfternStartAfter
Zawiera indeks (liczony od zera) elementu przed pierwszym elementem do przeszukania.Contains the zero-based index of the item before the first item to be searched. Gdy wyszukiwanie osiągnie dolny koniec pola listy, kontynuuje się z góry pola listy z powrotem do elementu określonego przez nStartAfter.When the search reaches the bottom of the list box, it continues from the top of the list box back to the item specified by nStartAfter. Jeśli nStartAfter to-1, całe pole listy jest przeszukiwane od początku.If nStartAfter is -1, the entire list box is searched from the beginning.

lpszItemlpszItem
Wskazuje ciąg zakończony znakiem null, który zawiera prefiks do wyszukania.Points to the null-terminated string that contains the prefix to search for. Wyszukiwanie jest niezależne od wielkości liter, więc ten ciąg może zawierać dowolną kombinację wielkich i małych liter.The search is case independent, so this string may contain any combination of uppercase and lowercase letters.

Wartość zwracanaReturn Value

Indeks (liczony od zera) pasującego elementu lub LB_ERR, jeśli wyszukiwanie nie powiodło się.The zero-based index of the matching item, or LB_ERR if the search was unsuccessful.

UwagiRemarks

Użyj funkcji składowej SelectString , aby znaleźć i wybrać ciąg.Use the SelectString member function to both find and select a string.

PrzykładExample

// The string to match.
LPCTSTR lpszmyString = _T("item");

// Delete all items that begin with the specified string.
int nIndex = 0;
while ((nIndex = m_myListBox.FindString(nIndex, lpszmyString)) != LB_ERR)
{
   m_myListBox.DeleteString(nIndex);
}

CListBox:: FindStringExactCListBox::FindStringExact

Znajduje ciąg pierwszego pola listy, który pasuje do ciągu określonego w lpszFind.Finds the first list-box string that matches the string specified in lpszFind.

int FindStringExact(
    int nIndexStart,
    LPCTSTR lpszFind) const;

ParametryParameters

nIndexStartnIndexStart
Określa indeks (liczony od zera) elementu przed pierwszym elementem do przeszukania.Specifies the zero-based index of the item before the first item to be searched. Gdy wyszukiwanie osiągnie dolny koniec pola listy, kontynuuje się z góry pola listy z powrotem do elementu określonego przez nIndexStart.When the search reaches the bottom of the list box, it continues from the top of the list box back to the item specified by nIndexStart. Jeśli nIndexStart to-1, całe pole listy jest przeszukiwane od początku.If nIndexStart is -1, the entire list box is searched from the beginning.

lpszFindlpszFind
Wskazuje ciąg zakończony znakiem null, który ma zostać wyszukany.Points to the null-terminated string to search for. Ten ciąg może zawierać pełną nazwę pliku, łącznie z rozszerzeniem.This string can contain a complete filename, including the extension. W wyszukiwaniu nie jest rozróżniana wielkość liter, dlatego ciąg może zawierać dowolną kombinację wielkich i małych liter.The search is not case sensitive, so the string can contain any combination of uppercase and lowercase letters.

Wartość zwracanaReturn Value

Indeks pasującego elementu lub LB_ERR, jeśli wyszukiwanie nie powiodło się.The index of the matching item, or LB_ERR if the search was unsuccessful.

UwagiRemarks

Jeśli pole listy zostało utworzone przy użyciu stylu rysowania przez właściciela, ale bez stylu LBS_HASSTRINGS , FindStringExact funkcja członkowska próbuje dopasować wartość DoubleWord do wartości lpszFind.If the list box was created with an owner-draw style but without the LBS_HASSTRINGS style, the FindStringExact member function attempts to match the doubleword value against the value of lpszFind.

PrzykładExample

// The string to match.
LPCTSTR lpszmyString = _T("item string 3");

// Delete all items that exactly match the specified string.
int nIndex = 0;
while ((nIndex = m_myListBox.FindStringExact(nIndex, lpszmyString)) != LB_ERR)
{
   m_myListBox.DeleteString(nIndex);
}

CListBox:: GetAnchorIndexCListBox::GetAnchorIndex

Pobiera indeks (liczony od zera) bieżącego elementu zakotwiczenia w polu listy.Retrieves the zero-based index of the current anchor item in the list box.

int GetAnchorIndex() const;

Wartość zwracanaReturn Value

Indeks bieżącego elementu zakotwiczonego, jeśli powodzenie; w przeciwnym razie LB_ERR.The index of the current anchor item, if successful; otherwise LB_ERR.

UwagiRemarks

W polu listy wielokrotnego wyboru element zakotwiczony jest pierwszym lub ostatnim elementem w bloku ciągłych wybranych elementów.In a multiple-selection list box, the anchor item is the first or last item in a block of contiguous selected items.

PrzykładExample

Zobacz przykład dla CListBox:: SetAnchorIndex.See the example for CListBox::SetAnchorIndex.

CListBox:: GetCaretIndexCListBox::GetCaretIndex

Określa indeks elementu, który ma prostokąt fokus w polu listy wielokrotnego wyboru.Determines the index of the item that has the focus rectangle in a multiple-selection list box.

int GetCaretIndex() const;

Wartość zwracanaReturn Value

Indeks (liczony od zera) elementu, który ma prostokąt fokus w polu listy.The zero-based index of the item that has the focus rectangle in a list box. Jeśli pole listy jest polem listy z pojedynczym wyborem, wartość zwracana jest indeksem elementu, który jest zaznaczony (jeśli istnieje).If the list box is a single-selection list box, the return value is the index of the item that is selected, if any.

UwagiRemarks

Element może lub nie może być wybrany.The item may or may not be selected.

PrzykładExample

Zobacz przykład dla CListBox:: SetCaretIndex.See the example for CListBox::SetCaretIndex.

CListBox:: GetCountCListBox::GetCount

Pobiera liczbę elementów w polu listy.Retrieves the number of items in a list box.

int GetCount() const;

Wartość zwracanaReturn Value

Liczba elementów w polu listy lub LB_ERR, jeśli wystąpi błąd.The number of items in the list box, or LB_ERR if an error occurs.

UwagiRemarks

Zwracana liczba jest większa niż wartość indeksu ostatniego elementu (indeks jest liczony od zera).The returned count is one greater than the index value of the last item (the index is zero-based).

PrzykładExample

// Add 10 items to the list box.
CString str;
for (int i = 0; i < 10; i++)
{
   str.Format(_T("item %d"), i);
   m_myListBox.AddString(str);
}

// Verify that 10 items were added to the list box.
ASSERT(m_myListBox.GetCount() == 10);

CListBox:: GetCurSelCListBox::GetCurSel

Pobiera indeks (liczony od zera) aktualnie wybranego elementu, jeśli istnieje, w polu listy z pojedynczym wyborem.Retrieves the zero-based index of the currently selected item, if any, in a single-selection list box.

int GetCurSel() const;

Wartość zwracanaReturn Value

Indeks (liczony od zera) aktualnie wybranego elementu, jeśli jest to pole listy z pojedynczym wyborem.The zero-based index of the currently selected item if it is a single-selection list box. Jest LB_ERR, jeśli żaden element nie jest aktualnie wybrany.It is LB_ERR if no item is currently selected.

W polu listy wielokrotnego wyboru indeks elementu, który ma fokus.In a multiple-selection list box, the index of the item that has the focus.

UwagiRemarks

Nie wywołuj GetCurSel pola listy wielokrotnego wyboru.Do not call GetCurSel for a multiple-selection list box. Zamiast tego użyj CListBox:: GetSelItems .Use CListBox::GetSelItems instead.

PrzykładExample

// Select the next item of the currently selected one.
int nIndex = m_myListBox.GetCurSel();
int nCount = m_myListBox.GetCount();
if ((nIndex != LB_ERR) && (nCount > 1))
{
   if (++nIndex < nCount)
      m_myListBox.SetCurSel(nIndex);
   else
      m_myListBox.SetCurSel(0);
}

CListBox:: GetHorizontalExtentCListBox::GetHorizontalExtent

Pobiera z pola listy szerokość w pikselach, w której można przewijać w poziomie.Retrieves from the list box the width in pixels by which it can be scrolled horizontally.

int GetHorizontalExtent() const;

Wartość zwracanaReturn Value

Szerokość pola listy w pikselach.The scrollable width of the list box, in pixels.

UwagiRemarks

Ma to zastosowanie tylko wtedy, gdy pole listy ma poziomy pasek przewijania.This is applicable only if the list box has a horizontal scroll bar.

PrzykładExample

// Find the longest string in the list box.
CString str;
CSize sz;
int dx = 0;
CDC *pDC = m_myListBox.GetDC();
for (int i = 0; i < m_myListBox.GetCount(); i++)
{
   m_myListBox.GetText(i, str);
   sz = pDC->GetTextExtent(str);

   if (sz.cx > dx)
      dx = sz.cx;
}
m_myListBox.ReleaseDC(pDC);

// Set the horizontal extent only if the current extent is not large enough.
if (m_myListBox.GetHorizontalExtent() < dx)
{
   m_myListBox.SetHorizontalExtent(dx);
   ASSERT(m_myListBox.GetHorizontalExtent() == dx);
}

CListBox:: GetItemDataCListBox::GetItemData

Pobiera wartość DoubleWord dostarczoną przez aplikację skojarzoną z określonym elementem listy.Retrieves the application-supplied doubleword value associated with the specified list-box item.

DWORD_PTR GetItemData(int nIndex) const;

ParametryParameters

nIndexnIndex
Określa indeks (liczony od zera) elementu w polu listy.Specifies the zero-based index of the item in the list box.

Wartość zwracanaReturn Value

Wartość skojarzona z elementem lub LB_ERR, jeśli wystąpi błąd.The value associated with the item, or LB_ERR if an error occurs.

UwagiRemarks

Wartość DoubleWord była parametrem dwItemData wywołania SetItemData .The doubleword value was the dwItemData parameter of a SetItemData call.

PrzykładExample

// If any item's data is equal to zero then reset it to -1.
for (int i = 0; i < m_myListBox.GetCount(); i++)
{
   if (m_myListBox.GetItemData(i) == 0)
   {
      m_myListBox.SetItemData(i, (DWORD)-1);
   }
}

CListBox:: GetItemDataPtrCListBox::GetItemDataPtr

Pobiera wartość 32-bitowej dostarczonej przez aplikację skojarzoną z określonym elementem listy jako wskaźnikiem ( void * ).Retrieves the application-supplied 32-bit value associated with the specified list-box item as a pointer (void *).

void* GetItemDataPtr(int nIndex) const;

ParametryParameters

nIndexnIndex
Określa indeks (liczony od zera) elementu w polu listy.Specifies the zero-based index of the item in the list box.

Wartość zwracanaReturn Value

Pobiera wskaźnik lub-1, jeśli wystąpi błąd.Retrieves a pointer, or -1 if an error occurs.

PrzykładExample

LPVOID lpmyPtr = pParentWnd;

// Check all the items in the list box; if an item's
// data pointer is equal to my pointer then reset it to NULL.
for (int i = 0; i < m_myListBox.GetCount(); i++)
{
   if (m_myListBox.GetItemDataPtr(i) == lpmyPtr)
   {
      m_myListBox.SetItemDataPtr(i, NULL);
   }
}

CListBox:: GetItemHeightCListBox::GetItemHeight

Określa wysokość elementów w polu listy.Determines the height of items in a list box.

int GetItemHeight(int nIndex) const;

ParametryParameters

nIndexnIndex
Określa indeks (liczony od zera) elementu w polu listy.Specifies the zero-based index of the item in the list box. Ten parametr jest używany tylko wtedy, gdy pole listy ma styl LBS_OWNERDRAWVARIABLE; w przeciwnym razie powinna być ustawiona na 0.This parameter is used only if the list box has the LBS_OWNERDRAWVARIABLE style; otherwise, it should be set to 0.

Wartość zwracanaReturn Value

Wysokość w pikselach elementów w polu listy.The height, in pixels, of the items in the list box. Jeśli pole listy ma styl LBS_OWNERDRAWVARIABLE , wartość zwracana to wysokość elementu określonego przez nIndex.If the list box has the LBS_OWNERDRAWVARIABLE style, the return value is the height of the item specified by nIndex. Jeśli wystąpi błąd, wartość zwracana jest LB_ERR.If an error occurs, the return value is LB_ERR.

PrzykładExample

// Set the height of every item so the item
// is completely visible.
CString str;
CSize sz;
CDC *pDC = m_myListBox.GetDC();
for (int i = 0; i < m_myListBox.GetCount(); i++)
{
   m_myListBox.GetText(i, str);
   sz = pDC->GetTextExtent(str);

   // Only want to set the item height if the current height
   // is not big enough.
   if (m_myListBox.GetItemHeight(i) < sz.cy)
      m_myListBox.SetItemHeight(i, sz.cy);
}
m_myListBox.ReleaseDC(pDC);

CListBox:: GetItemRectCListBox::GetItemRect

Pobiera wymiary prostokąta, który jest powiązany z elementem pola listy, tak jak jest aktualnie wyświetlany w oknie listy.Retrieves the dimensions of the rectangle that bounds a list-box item as it is currently displayed in the list-box window.

int GetItemRect(
    int nIndex,
    LPRECT lpRect) const;

ParametryParameters

nIndexnIndex
Określa indeks (liczony od zera) elementu.Specifies the zero-based index of the item.

lpRectlpRect
Określa długi wskaźnik do struktury Rect , który odbiera współrzędne klienta pola listy.Specifies a long pointer to a RECT structure that receives the list-box client coordinates of the item.

Wartość zwracanaReturn Value

LB_ERR w przypadku wystąpienia błędu.LB_ERR if an error occurs.

PrzykładExample

// Dump all of the items bounds.
CString str;
RECT r;
for (int i = 0; i < m_myListBox.GetCount(); i++)
{
   m_myListBox.GetItemRect(i, &r);

   str.Format(_T("item %d: left = %d, top = %d, right = %d, ")
              _T("bottom = %d\r\n"),
              i,
              r.left,
              r.top,
              r.right,
              r.bottom);
   AFXDUMP(str);
}

CListBox:: GetListBoxInfoCListBox::GetListBoxInfo

Pobiera liczbę elementów na kolumnę.Retrieves the number of items per column.

DWORD GetListBoxInfo() const;

Wartość zwracanaReturn Value

Liczba elementów na kolumnę CListBox obiektu.Number of items per column of the CListBox object.

UwagiRemarks

Ta funkcja członkowska emuluje funkcjonalność komunikatu LB_GETLISTBOXINFO , zgodnie z opisem w Windows SDK.This member function emulates the functionality of the LB_GETLISTBOXINFO message, as described in the Windows SDK.

CListBox:: getLocaleCListBox::GetLocale

Pobiera ustawienia regionalne używane przez pole listy.Retrieves the locale used by the list box.

LCID GetLocale() const;

Wartość zwracanaReturn Value

Wartość identyfikatora ustawień regionalnych (LCID) dla ciągów w polu listy.The locale identifier (LCID) value for the strings in the list box.

UwagiRemarks

Ustawienia regionalne są używane na przykład w celu określenia kolejności sortowania ciągów w posortowanym polu listy.The locale is used, for example, to determine the sort order of the strings in a sorted list box.

PrzykładExample

Zobacz przykład dla CListBox:: Setlocals.See the example for CListBox::SetLocale.

CListBox:: GetSelCListBox::GetSel

Pobiera stan zaznaczenia elementu.Retrieves the selection state of an item.

int GetSel(int nIndex) const;

ParametryParameters

nIndexnIndex
Określa indeks (liczony od zera) elementu.Specifies the zero-based index of the item.

Wartość zwracanaReturn Value

Liczba dodatnia, jeśli wybrano określony element; w przeciwnym razie jest równa 0.A positive number if the specified item is selected; otherwise, it is 0. Wartość zwracana jest LB_ERR w przypadku wystąpienia błędu.The return value is LB_ERR if an error occurs.

UwagiRemarks

Ta funkcja członkowska działa zarówno w przypadku pól listy pojedynczej, jak i wielokrotnego wyboru.This member function works with both single- and multiple-selection list boxes.

Aby pobrać indeks aktualnie wybranego elementu pola listy, użyj CListBox:: GetCurSel.To retrieve the index of the currently-selected list box item, use CListBox::GetCurSel.

PrzykładExample

// Dump all of the items select state.
CString str;
for (int i = 0; i < m_myListBox.GetCount(); i++)
{
   str.Format(_T("item %d: select state is %s\r\n"),
              i,
              m_myListBox.GetSel(i) > 0 ? _T("true") : _T("false"));
   AFXDUMP(str);
}

CListBox:: GetSelCountCListBox::GetSelCount

Pobiera łączną liczbę wybranych elementów w polu listy wielokrotnego wyboru.Retrieves the total number of selected items in a multiple-selection list box.

int GetSelCount() const;

Wartość zwracanaReturn Value

Liczba wybranych elementów w polu listy.The count of selected items in a list box. Jeśli pole listy jest polem listy z pojedynczym wyborem, wartość zwracana jest LB_ERR.If the list box is a single-selection list box, the return value is LB_ERR.

PrzykładExample

Zobacz przykład dla CListBox:: GetSelItems.See the example for CListBox::GetSelItems.

CListBox:: GetSelItemsCListBox::GetSelItems

Wypełnia bufor z tablicą liczb całkowitych, które określają numery elementów wybranych elementów w polu listy wielokrotnego wyboru.Fills a buffer with an array of integers that specifies the item numbers of selected items in a multiple-selection list box.

int GetSelItems(
    int nMaxItems,
    LPINT rgIndex) const;

ParametryParameters

nMaxItemsnMaxItems
Określa maksymalną liczbę wybranych elementów, których numery elementów mają być umieszczane w buforze.Specifies the maximum number of selected items whose item numbers are to be placed in the buffer.

rgIndexrgIndex
Określa wskaźnik do buforu wystarczająco duży dla liczby liczb całkowitych określonych przez nMaxItems.Specifies a pointer to a buffer large enough for the number of integers specified by nMaxItems.

Wartość zwracanaReturn Value

Rzeczywista liczba elementów umieszczonych w buforze.The actual number of items placed in the buffer. Jeśli pole listy jest polem listy z pojedynczym wyborem, wartość zwracana to LB_ERR .If the list box is a single-selection list box, the return value is LB_ERR.

PrzykładExample

// Get the indexes of all the selected items.
int nCount = m_myODListBox.GetSelCount();
CArray<int, int> aryListBoxSel;

aryListBoxSel.SetSize(nCount);
m_myODListBox.GetSelItems(nCount, aryListBoxSel.GetData());

// Dump the selection array.
AFXDUMP(aryListBoxSel);

CListBox:: gettextCListBox::GetText

Pobiera ciąg z pola listy.Gets a string from a list box.

int GetText(
    int nIndex,
    LPTSTR lpszBuffer) const;

void GetText(
    int nIndex,
    CString& rString) const;

ParametryParameters

nIndexnIndex
Określa indeks (liczony od zera) ciągu, który ma zostać pobrany.Specifies the zero-based index of the string to be retrieved.

lpszBufferlpszBuffer
Wskazuje bufor, który odbiera ciąg.Points to the buffer that receives the string. Bufor musi mieć wystarczającą ilość miejsca dla ciągu i kończącego znaku null.The buffer must have sufficient space for the string and a terminating null character. Rozmiar ciągu można ustalić przed czasem, wywołując GetTextLen funkcję członkowską.The size of the string can be determined ahead of time by calling the GetTextLen member function.

rStringrString
Odwołanie do CString obiektu.A reference to a CString object.

Wartość zwracanaReturn Value

Długość (w bajtach) ciągu, z wyłączeniem kończącego znaku null.The length (in bytes) of the string, excluding the terminating null character. Jeśli nIndex nie określa prawidłowego indeksu, wartość zwracana jest LB_ERR.If nIndex does not specify a valid index, the return value is LB_ERR.

UwagiRemarks

Druga forma tej funkcji składowej wypełnia CString obiekt ciągiem tekstu.The second form of this member function fills a CString object with the string text.

PrzykładExample

// Dump all of the items in the list box.
CString str, str2;
int n;
for (int i = 0; i < m_myListBox.GetCount(); i++)
{
   n = m_myListBox.GetTextLen(i);
   m_myListBox.GetText(i, str.GetBuffer(n));
   str.ReleaseBuffer();

   str2.Format(_T("item %d: %s\r\n"), i, str.GetBuffer(0));
   AFXDUMP(str2);
}

CListBox:: GetTextLenCListBox::GetTextLen

Pobiera długość ciągu w pozycji listy.Gets the length of a string in a list-box item.

int GetTextLen(int nIndex) const;

ParametryParameters

nIndexnIndex
Określa indeks ciągu liczony od zera.Specifies the zero-based index of the string.

Wartość zwracanaReturn Value

Długość ciągu znaków, z wyłączeniem kończącego znaku null.The length of the string in characters, excluding the terminating null character. Jeśli nIndex nie określa prawidłowego indeksu, wartość zwracana jest LB_ERR.If nIndex does not specify a valid index, the return value is LB_ERR.

PrzykładExample

Zobacz przykład dla CListBox:: gettext.See the example for CListBox::GetText.

CListBox:: GetTopIndexCListBox::GetTopIndex

Pobiera indeks (liczony od zera) pierwszego widocznego elementu w polu listy.Retrieves the zero-based index of the first visible item in a list box.

int GetTopIndex() const;

Wartość zwracanaReturn Value

Indeks (liczony od zera) pierwszego widocznego elementu w polu listy, jeśli się powiedzie, LB_ERR w przeciwnym razie.The zero-based index of the first visible item in a list box if successful, LB_ERR otherwise.

UwagiRemarks

Początkowo element 0 znajduje się u góry pola listy, ale jeśli pole listy jest przewijane, inny element może znajdować się u góry.Initially, item 0 is at the top of the list box, but if the list box is scrolled, another item may be at the top.

PrzykładExample

// Want an item in the bottom half to be the first visible item.
int n = m_myListBox.GetCount() / 2;
if (m_myListBox.GetTopIndex() < n)
{
   m_myListBox.SetTopIndex(n);
   ASSERT(m_myListBox.GetTopIndex() == n);
}

CListBox:: InitStorageCListBox::InitStorage

Przydziela pamięć do przechowywania elementów pola listy.Allocates memory for storing list-box items.

int InitStorage(
    int nItems,
    UINT nBytes);

ParametryParameters

nItemsnItems
Określa liczbę elementów do dodania.Specifies the number of items to add.

nBytesnBytes
Określa ilość pamięci (w bajtach) do przydzielenia dla ciągów elementów.Specifies the amount of memory, in bytes, to allocate for item strings.

Wartość zwracanaReturn Value

Jeśli to się powiedzie, Maksymalna liczba elementów, które mogą być przechowywane w polu listy przed ponownym alokacją pamięci, jest niezbędna, w przeciwnym razie LB_ERRSPACE, co oznacza, że jest za mało dostępnej pamięci.If successful, the maximum number of items that the list box can store before a memory reallocation is needed, otherwise LB_ERRSPACE, meaning not enough memory is available.

UwagiRemarks

Wywołaj tę funkcję przed dodaniem dużej liczby elementów do CListBox .Call this function before adding a large number of items to a CListBox.

Ta funkcja pomaga przyspieszyć inicjalizację pól listy, które mają dużą liczbę elementów (więcej niż 100).This function helps speed up the initialization of list boxes that have a large number of items (more than 100). Wstępnie przydzieli określoną ilość pamięci, aby kolejne funkcje AddString, InsertStringi dir miały najkrótszy możliwy czas.It preallocates the specified amount of memory so that subsequent AddString, InsertString, and Dir functions take the shortest possible time. Można użyć oszacowań dla parametrów.You can use estimates for the parameters. W przypadku nadmiernego oszacowania część dodatkowej pamięci zostanie przypisana; w przypadku podwyższania szacunku normalna alokacja jest używana dla elementów, które przekraczają wstępnie przydzieloną kwotę.If you overestimate, some extra memory is allocated; if you underestimate, the normal allocation is used for items that exceed the preallocated amount.

Tylko system Windows 95/98: parametr nItems jest ograniczony do wartości 16-bitowych.Windows 95/98 only: The nItems parameter is limited to 16-bit values. Oznacza to, że pola listy nie mogą zawierać więcej niż 32 767 elementów.This means list boxes cannot contain more than 32,767 items. Chociaż liczba elementów jest ograniczona, łączny rozmiar elementów w polu listy jest ograniczony tylko przez dostępną pamięć.Although the number of items is restricted, the total size of the items in a list box is limited only by available memory.

PrzykładExample

// Initialize the storage of the list box to be 256 strings with
// about 10 characters per string, performance improvement.
int n = m_myListBox.InitStorage(256, 16 * sizeof(TCHAR));
ASSERT(n != LB_ERRSPACE);

// Add 256 items to the list box.
CString str;
for (int i = 0; i < 256; i++)
{
   str.Format(_T("item string %d"), i);
   m_myListBox.AddString(str);
}

CListBox:: InsertStringCListBox::InsertString

Wstawia ciąg w polu listy.Inserts a string into the list box.

int InsertString(
    int nIndex,
    LPCTSTR lpszItem);

ParametryParameters

nIndexnIndex
Określa indeks pozycji (liczony od zera), w której ma zostać wstawiony ciąg.Specifies the zero-based index of the position to insert the string. Jeśli ten parametr ma wartość-1, ciąg zostanie dodany na końcu listy.If this parameter is -1, the string is added to the end of the list.

lpszItemlpszItem
Wskazuje ciąg zakończony znakiem null, który ma zostać wstawiony.Points to the null-terminated string that is to be inserted.

Wartość zwracanaReturn Value

Indeks (liczony od zera) pozycji, w której został wstawiony ciąg.The zero-based index of the position at which the string was inserted. Wartość zwracana jest LB_ERR w przypadku wystąpienia błędu; wartość zwracana jest LB_ERRSPACE, jeśli jest za mało miejsca, aby można było zapisać nowy ciąg.The return value is LB_ERR if an error occurs; the return value is LB_ERRSPACE if insufficient space is available to store the new string.

UwagiRemarks

W przeciwieństwie do funkcji składowej AddString InsertString nie powoduje sortowania listy z stylem LBS_SORT .Unlike the AddString member function, InsertString does not cause a list with the LBS_SORT style to be sorted.

PrzykładExample

// Insert items in between existing items.
CString str;
int n = m_myListBox.GetCount();
for (int i = 0; i < n; i++)
{
   str.Format(_T("item string %c"), (char)('A' + i));
   m_myListBox.InsertString(2 * i, str);
}

CListBox:: ItemFromPointCListBox::ItemFromPoint

Określa element pola listy najbliższy punkt określony w pkt pt.Determines the list-box item nearest the point specified in pt.

UINT ItemFromPoint(
    CPoint pt,
    BOOL& bOutside) const;

ParametryParameters

zmiennoprzecinkowpt
Punkt, dla którego można znaleźć najbliższy element określony względem lewego górnego rogu obszaru klienta w polu listy.Point for which to find the nearest item, specified relative to the upper-left corner of the client area of the list box.

bOutsidebOutside
Odwołanie do zmiennej LOGICZNEj, która zostanie ustawiona na wartość TRUE, jeśli pt znajduje się poza obszarem klienckim pola listy, wartość false, jeśli pt znajduje się w obszarze klienta pola listy.Reference to a BOOL variable which will be set to TRUE if pt is outside the client area of the list box, FALSE if pt is inside the client area of the list box.

Wartość zwracanaReturn Value

Indeks najbliższego elementu do punktu określonego w pkt pt.The index of the nearest item to the point specified in pt.

UwagiRemarks

Za pomocą tej funkcji można określić, który element pola listy jest przesuwany nad kursorem myszy.You could use this function to determine which list-box item the mouse cursor moves over.

PrzykładExample

Zobacz przykład dla CListBox:: SetAnchorIndex.See the example for CListBox::SetAnchorIndex.

CListBox:: MeasureItemCListBox::MeasureItem

Wywoływane przez platformę, gdy zostanie utworzony pole listy z stylem rysowania przez właściciela.Called by the framework when a list box with an owner-draw style is created.

virtual void MeasureItem(LPMEASUREITEMSTRUCT lpMeasureItemStruct);

ParametryParameters

lpMeasureItemStructlpMeasureItemStruct
Długi wskaźnik do struktury MEASUREITEMSTRUCT .A long pointer to a MEASUREITEMSTRUCT structure.

UwagiRemarks

Domyślnie ta funkcja członkowska nic nie robi.By default, this member function does nothing. Zastąp tę funkcję członkowską i wypełnij MEASUREITEMSTRUCT strukturę, aby informować okna o wymiarach pola listy.Override this member function and fill in the MEASUREITEMSTRUCT structure to inform Windows of the list-box dimensions. Jeśli pole listy jest tworzone z stylem LBS_OWNERDRAWVARIABLE , struktura wywołuje tę funkcję elementu członkowskiego dla każdego elementu w polu listy.If the list box is created with the LBS_OWNERDRAWVARIABLE style, the framework calls this member function for each item in the list box. W przeciwnym razie ten element członkowski jest wywoływany tylko raz.Otherwise, this member is called only once.

Aby uzyskać więcej informacji na temat używania stylu LBS_OWNERDRAWFIXED w polu listy rysowania przez właściciela utworzonego za pomocą SubclassDlgItem funkcji elementu członkowskiego CWnd , zapoznaj się z tematem dyskusja w artykule technicznym 14.For further information about using the LBS_OWNERDRAWFIXED style in an owner-draw list box created with the SubclassDlgItem member function of CWnd, see the discussion in Technical Note 14.

Opis struktury można znaleźć w temacie CWnd:: OnMeasureItem MEASUREITEMSTRUCT .See CWnd::OnMeasureItem for a description of the MEASUREITEMSTRUCT structure.

PrzykładExample

// CMyODListBox is my owner-drawn list box derived from CListBox. This
// example measures an item and sets the height of the item to twice the
// vertical extent of its text. The list box control was created with the
// following code:
//   m_myODListBox.Create(
//      WS_CHILD|WS_VISIBLE|WS_BORDER|WS_HSCROLL|WS_VSCROLL|
//      LBS_SORT|LBS_MULTIPLESEL|LBS_OWNERDRAWVARIABLE|LBS_WANTKEYBOARDINPUT,
//      CRect(10,250,200,450), pParentWnd, IDC_MYODLISTBOX);
//
void CMyODListBox::MeasureItem(LPMEASUREITEMSTRUCT lpMeasureItemStruct)
{
   ASSERT(lpMeasureItemStruct->CtlType == ODT_LISTBOX);
   LPCTSTR lpszText = (LPCTSTR)lpMeasureItemStruct->itemData;
   ASSERT(lpszText != NULL);
   CSize sz;
   CDC *pDC = GetDC();

   sz = pDC->GetTextExtent(lpszText);

   ReleaseDC(pDC);

   lpMeasureItemStruct->itemHeight = 2 * sz.cy;
}

CListBox:: ResetContentCListBox::ResetContent

Usuwa wszystkie elementy z pola listy.Removes all items from a list box.

void ResetContent();

PrzykładExample

// Delete all the items from the list box.
m_myListBox.ResetContent();
ASSERT(m_myListBox.GetCount() == 0);

CListBox:: SelectStringCListBox::SelectString

Wyszukuje element pola listy, który pasuje do określonego ciągu, i jeśli zostanie znaleziony pasujący element, zaznacza element.Searches for a list-box item that matches the specified string, and if a matching item is found, it selects the item.

int SelectString(
    int nStartAfter,
    LPCTSTR lpszItem);

ParametryParameters

nStartAfternStartAfter
Zawiera indeks (liczony od zera) elementu przed pierwszym elementem do przeszukania.Contains the zero-based index of the item before the first item to be searched. Gdy wyszukiwanie osiągnie dolny koniec pola listy, kontynuuje się z góry pola listy z powrotem do elementu określonego przez nStartAfter.When the search reaches the bottom of the list box, it continues from the top of the list box back to the item specified by nStartAfter. Jeśli nStartAfter to-1, całe pole listy jest przeszukiwane od początku.If nStartAfter is -1, the entire list box is searched from the beginning.

lpszItemlpszItem
Wskazuje ciąg zakończony znakiem null, który zawiera prefiks do wyszukania.Points to the null-terminated string that contains the prefix to search for. Wyszukiwanie jest niezależne od wielkości liter, więc ten ciąg może zawierać dowolną kombinację wielkich i małych liter.The search is case independent, so this string may contain any combination of uppercase and lowercase letters.

Wartość zwracanaReturn Value

Indeks wybranego elementu, jeśli wyszukiwanie zakończyło się pomyślnie.The index of the selected item if the search was successful. Jeśli wyszukiwanie nie powiodło się, wartość zwracana jest LB_ERR i bieżące zaznaczenie nie zostanie zmienione.If the search was unsuccessful, the return value is LB_ERR and the current selection is not changed.

UwagiRemarks

Pole listy jest przewijane, w razie potrzeby, aby przenieść wybrany element do widoku.The list box is scrolled, if necessary, to bring the selected item into view.

Ta funkcja członkowska nie może być używana z polem listy, które ma styl LBS_MULTIPLESEL .This member function cannot be used with a list box that has the LBS_MULTIPLESEL style.

Element jest wybierany tylko wtedy, gdy jego początkowe znaki (od punktu początkowego) pasują do znaków w ciągu określonym przez lpszItem.An item is selected only if its initial characters (from the starting point) match the characters in the string specified by lpszItem.

Użyj FindString funkcji członkowskiej, aby znaleźć ciąg bez wybierania elementu.Use the FindString member function to find a string without selecting the item.

PrzykładExample

// The string to match.
LPCTSTR lpszmyString = _T("item 5");

// Select the item that begins with the specified string.
int nIndex = m_myListBox.SelectString(0, lpszmyString);
ASSERT(nIndex != LB_ERR);

CListBox:: SelItemRangeCListBox::SelItemRange

Wybiera wiele kolejnych elementów w polu listy wielokrotnego wyboru.Selects multiple consecutive items in a multiple-selection list box.

int SelItemRange(
    BOOL bSelect,
    int nFirstItem,
    int nLastItem);

ParametryParameters

bSelectbSelect
Określa, jak ustawić wybór.Specifies how to set the selection. Jeśli bSelect ma wartość true, ciąg jest zaznaczony i wyróżniony; w przypadku wartości FALSE wyróżnienie jest usuwane, a ciąg nie jest już zaznaczony.If bSelect is TRUE, the string is selected and highlighted; if FALSE, the highlight is removed and the string is no longer selected.

nFirstItemnFirstItem
Określa indeks (liczony od zera) pierwszego elementu, który ma zostać ustawiony.Specifies the zero-based index of the first item to set.

nLastItemnLastItem
Określa indeks (liczony od zera) ostatniego elementu, który ma zostać ustawiony.Specifies the zero-based index of the last item to set.

Wartość zwracanaReturn Value

LB_ERR w przypadku wystąpienia błędu.LB_ERR if an error occurs.

UwagiRemarks

Ta funkcja członkowska jest używana tylko z polami list wielokrotnego wyboru.Use this member function only with multiple-selection list boxes. Jeśli musisz wybrać tylko jeden element w polu listy wielokrotnego wyboru — to znaczy, jeśli nFirstItem jest równa nLastItem — zamiast tego wywołaj funkcję członkowską SetSel .If you need to select only one item in a multiple-selection list box — that is, if nFirstItem is equal to nLastItem — call the SetSel member function instead.

PrzykładExample

// Select half of the items.
m_myODListBox.SelItemRange(TRUE, 0, m_myODListBox.GetCount() / 2);

CListBox:: SetAnchorIndexCListBox::SetAnchorIndex

Ustawia kotwicę w polu listy wielokrotnego wyboru, aby rozpocząć rozszerzane zaznaczenie.Sets the anchor in a multiple-selection list box to begin an extended selection.

void SetAnchorIndex(int nIndex);

ParametryParameters

nIndexnIndex
Określa indeks (liczony od zera) elementu pola listy, który będzie zakotwiczeniem.Specifies the zero-based index of the list-box item that will be the anchor.

UwagiRemarks

W polu listy wielokrotnego wyboru element zakotwiczony jest pierwszym lub ostatnim elementem w bloku ciągłych wybranych elementów.In a multiple-selection list box, the anchor item is the first or last item in a block of contiguous selected items.

PrzykładExample

void CMyODListBox::OnLButtonDown(UINT nFlags, CPoint point)
{
   BOOL bOutside = TRUE;
   UINT uItem = ItemFromPoint(point, bOutside);

   if (!bOutside)
   {
      // Set the anchor to be the middle item.
      SetAnchorIndex(uItem);
      ASSERT((UINT)GetAnchorIndex() == uItem);
   }

   CListBox::OnLButtonDown(nFlags, point);
}

CListBox:: SetCaretIndexCListBox::SetCaretIndex

Ustawia prostokąt fokusu na element o określonym indeksie w polu listy wielokrotnego wyboru.Sets the focus rectangle to the item at the specified index in a multiple-selection list box.

int SetCaretIndex(
    int nIndex,
    BOOL bScroll = TRUE);

ParametryParameters

nIndexnIndex
Określa indeks (liczony od zera) elementu, w którym ma zostać wyświetlony prostokąt fokus w polu listy.Specifies the zero-based index of the item to receive the focus rectangle in the list box.

bScrollbScroll
Jeśli ta wartość jest równa 0, element zostanie przewinięty do momentu, w którym jest w pełni widoczny.If this value is 0, the item is scrolled until it is fully visible. Jeśli ta wartość nie jest równa 0, element zostanie przewinięty do momentu, gdy jest on co najmniej częściowo widoczny.If this value is not 0, the item is scrolled until it is at least partially visible.

Wartość zwracanaReturn Value

LB_ERR w przypadku wystąpienia błędu.LB_ERR if an error occurs.

UwagiRemarks

Jeśli element nie jest widoczny, jest przewijany do widoku.If the item is not visible, it is scrolled into view.

PrzykładExample

// Set the caret to be the middle item.
m_myListBox.SetCaretIndex(m_myListBox.GetCount() / 2);
ASSERT(m_myListBox.GetCaretIndex() == m_myListBox.GetCount() / 2);

CListBox:: SetColumnWidthCListBox::SetColumnWidth

Ustawia szerokość (w pikselach) wszystkich kolumn w wielokolumnowym polu listy (utworzonego za pomocą stylu LBS_MULTICOLUMN ).Sets the width in pixels of all columns in a multicolumn list box (created with the LBS_MULTICOLUMN style).

void SetColumnWidth(int cxWidth);

ParametryParameters

cxWidthcxWidth
Określa szerokość (w pikselach) wszystkich kolumn.Specifies the width in pixels of all columns.

PrzykładExample

// Find the pixel width of the largest item.
CString str;
CSize   sz;
int     dx = 0;
CDC* pDC = myListBox.GetDC();
for (int i = 0; i < myListBox.GetCount(); i++)
{
   myListBox.GetText(i, str);
   sz = pDC->GetTextExtent(str);

   if (sz.cx > dx)
      dx = sz.cx;
}
myListBox.ReleaseDC(pDC);

// Set the column width of the first column to be one and 1/3 units
// of the largest string. 
myListBox.SetColumnWidth(dx * 4 / 3);

CListBox:: SetCurSelCListBox::SetCurSel

Wybiera ciąg i przewija go do widoku, w razie potrzeby.Selects a string and scrolls it into view, if necessary.

int SetCurSel(int nSelect);

ParametryParameters

nWybierznSelect
Określa indeks (liczony od zera) ciągu, który ma zostać wybrany.Specifies the zero-based index of the string to be selected. Jeśli nWybierz ma wartość-1, pole listy nie ma żadnego wyboru.If nSelect is -1, the list box is set to have no selection.

Wartość zwracanaReturn Value

LB_ERR w przypadku wystąpienia błędu.LB_ERR if an error occurs.

UwagiRemarks

Po wybraniu nowego ciągu pole listy usuwa wyróżnienie z wcześniej wybranego ciągu.When the new string is selected, the list box removes the highlight from the previously selected string.

Ta funkcja członkowska jest używana tylko z polami listy z pojedynczym wyborem.Use this member function only with single-selection list boxes.

Aby ustawić lub usunąć zaznaczenie w polu listy wielokrotnego wyboru, użyj CListBox:: SetSel.To set or remove a selection in a multiple-selection list box, use CListBox::SetSel.

PrzykładExample

// Select the last item in the list box.
int nCount = m_myListBox.GetCount();
if (nCount > 0)
   m_myListBox.SetCurSel(nCount - 1);

CListBox:: SetHorizontalExtentCListBox::SetHorizontalExtent

Ustawia szerokość (w pikselach), przez którą pole listy może być przewijane w poziomie.Sets the width, in pixels, by which a list box can be scrolled horizontally.

void SetHorizontalExtent(int cxExtent);

ParametryParameters

cxExtentcxExtent
Określa liczbę pikseli, przez jaką pole listy może być przewijane w poziomie.Specifies the number of pixels by which the list box can be scrolled horizontally.

UwagiRemarks

Jeśli rozmiar pola listy jest mniejszy niż ta wartość, poziomy pasek przewijania będzie przewinąć w poziomie elementy w polu listy.If the size of the list box is smaller than this value, the horizontal scroll bar will horizontally scroll items in the list box. Jeśli pole listy jest tak duże lub większe niż ta wartość, poziomy pasek przewijania jest ukryty.If the list box is as large or larger than this value, the horizontal scroll bar is hidden.

Aby odpowiedzieć na wywołanie SetHorizontalExtent , pole listy musi być zdefiniowane z stylem WS_HSCROLL .To respond to a call to SetHorizontalExtent, the list box must have been defined with the WS_HSCROLL style.

Ta funkcja członkowska nie jest przydatna w przypadku wielokolumnowych pól listy.This member function is not useful for multicolumn list boxes. Dla wielokolumnowych pól listy Wywołaj SetColumnWidth funkcję członkowską.For multicolumn list boxes, call the SetColumnWidth member function.

PrzykładExample

// Find the longest string in the list box.
CString str;
CSize sz;
int dx = 0;
TEXTMETRIC tm;
CDC *pDC = m_myListBox.GetDC();
CFont *pFont = m_myListBox.GetFont();

// Select the listbox font, save the old font
CFont *pOldFont = pDC->SelectObject(pFont);
// Get the text metrics for avg char width
pDC->GetTextMetrics(&tm);

for (int i = 0; i < m_myListBox.GetCount(); i++)
{
   m_myListBox.GetText(i, str);
   sz = pDC->GetTextExtent(str);

   // Add the avg width to prevent clipping
   sz.cx += tm.tmAveCharWidth;

   if (sz.cx > dx)
      dx = sz.cx;
}
// Select the old font back into the DC
pDC->SelectObject(pOldFont);
m_myListBox.ReleaseDC(pDC);

// Set the horizontal extent so every character of all strings
// can be scrolled to.
m_myListBox.SetHorizontalExtent(dx);

CListBox:: SetItemDataCListBox::SetItemData

Ustawia wartość skojarzoną z określonym elementem w polu listy.Sets a value associated with the specified item in a list box.

int SetItemData(
    int nIndex,
    DWORD_PTR dwItemData);

ParametryParameters

nIndexnIndex
Określa indeks (liczony od zera) elementu.Specifies the zero-based index of the item.

dwItemDatadwItemData
Określa wartość, która ma zostać skojarzona z elementem.Specifies the value to be associated with the item.

Wartość zwracanaReturn Value

LB_ERR w przypadku wystąpienia błędu.LB_ERR if an error occurs.

PrzykładExample

// Set the data of each item to be equal to its index.
for (int i = 0; i < m_myListBox.GetCount(); i++)
{
   m_myListBox.SetItemData(i, i);
}

CListBox:: SetItemDataPtrCListBox::SetItemDataPtr

Ustawia wartość 32-bitową skojarzoną z określonym elementem w polu listy jako określony wskaźnik ( void * ).Sets the 32-bit value associated with the specified item in a list box to be the specified pointer ( void *).

int SetItemDataPtr(
    int nIndex,
    void* pData);

ParametryParameters

nIndexnIndex
Określa indeks (liczony od zera) elementu.Specifies the zero-based index of the item.

pDatapData
Określa wskaźnik, który ma zostać skojarzony z elementem.Specifies the pointer to be associated with the item.

Wartość zwracanaReturn Value

LB_ERR w przypadku wystąpienia błędu.LB_ERR if an error occurs.

UwagiRemarks

Ten wskaźnik pozostaje prawidłowy dla życia pola listy, nawet jeśli względne położenie elementu w polu listy może ulec zmianie, gdy elementy są dodawane lub usuwane.This pointer remains valid for the life of the list box, even though the item's relative position within the list box might change as items are added or removed. W związku z tym indeks elementu w polu może ulec zmianie, ale wskaźnik pozostaje niezawodny.Hence, the item's index within the box can change, but the pointer remains reliable.

PrzykładExample

// Set the data pointer of each item to be NULL.
for (int i = 0; i < m_myListBox.GetCount(); i++)
{
   m_myListBox.SetItemDataPtr(i, NULL);
}

CListBox:: SetItemHeightCListBox::SetItemHeight

Ustawia wysokość elementów w polu listy.Sets the height of items in a list box.

int SetItemHeight(
    int nIndex,
    UINT cyItemHeight);

ParametryParameters

nIndexnIndex
Określa indeks (liczony od zera) elementu w polu listy.Specifies the zero-based index of the item in the list box. Ten parametr jest używany tylko wtedy, gdy pole listy ma styl LBS_OWNERDRAWVARIABLE; w przeciwnym razie powinna być ustawiona na 0.This parameter is used only if the list box has the LBS_OWNERDRAWVARIABLE style; otherwise, it should be set to 0.

cyItemHeightcyItemHeight
Określa wysokość (w pikselach) elementu.Specifies the height, in pixels, of the item.

Wartość zwracanaReturn Value

LB_ERR, jeśli indeks lub wysokość są nieprawidłowe.LB_ERR if the index or height is invalid.

UwagiRemarks

Jeśli pole listy ma styl LBS_OWNERDRAWVARIABLE , ta funkcja Ustawia wysokość elementu określonego przez nIndex.If the list box has the LBS_OWNERDRAWVARIABLE style, this function sets the height of the item specified by nIndex. W przeciwnym razie ta funkcja Ustawia wysokość wszystkich elementów w polu listy.Otherwise, this function sets the height of all items in the list box.

PrzykładExample

// Set the height of every item to be the
// vertical size of the item's text extent.
CString str;
CSize sz;
CDC *pDC = myListBox.GetDC();
for (int i = 0; i < myListBox.GetCount(); i++)
{
   myListBox.GetText(i, str);
   sz = pDC->GetTextExtent(str);

   myListBox.SetItemHeight(i, sz.cy);
}
myListBox.ReleaseDC(pDC);

CListBox:: setlocaleCListBox::SetLocale

Ustawia identyfikator ustawień regionalnych dla tego pola listy.Sets the locale identifier for this list box.

LCID SetLocale(LCID nNewLocale);

ParametryParameters

nNewLocalenNewLocale
Nowa wartość identyfikatora ustawień regionalnych (LCID) do ustawienia w polu listy.The new locale identifier (LCID) value to set for the list box.

Wartość zwracanaReturn Value

Wartość poprzedniego identyfikatora ustawień regionalnych (LCID) dla tego pola listy.The previous locale identifier (LCID) value for this list box.

UwagiRemarks

Jeśli SetLocale nie jest wywoływana, domyślne ustawienia regionalne są uzyskiwane z systemu.If SetLocale is not called, the default locale is obtained from the system. Domyślne ustawienia regionalne systemu można modyfikować za pomocą aplikacji regionalnej (lub międzynarodowej) panelu sterowania.This system default locale can be modified by using Control Panel's Regional (or International) application.

PrzykładExample

// My LCID to use.
LCID mylcid = MAKELCID(MAKELANGID(LANG_SPANISH, SUBLANG_SPANISH_MEXICAN),
                       SORT_DEFAULT);

// Force the list box to use my locale.
m_myListBox.SetLocale(mylcid);
ASSERT(m_myListBox.GetLocale() == mylcid);

CListBox:: SetSelCListBox::SetSel

Wybiera ciąg w polu listy wielokrotnego wyboru.Selects a string in a multiple-selection list box.

int SetSel(
    int nIndex,
    BOOL bSelect = TRUE);

ParametryParameters

nIndexnIndex
Zawiera indeks (liczony od zera) ciągu, który ma zostać ustawiony.Contains the zero-based index of the string to be set. Jeśli-1, zaznaczenie jest dodawane lub usuwane ze wszystkich ciągów, w zależności od wartości bSelect.If -1, the selection is added to or removed from all strings, depending on the value of bSelect.

bSelectbSelect
Określa, jak ustawić wybór.Specifies how to set the selection. Jeśli bSelect ma wartość true, ciąg jest zaznaczony i wyróżniony; w przypadku wartości FALSE wyróżnienie jest usuwane, a ciąg nie jest już zaznaczony.If bSelect is TRUE, the string is selected and highlighted; if FALSE, the highlight is removed and the string is no longer selected. Określony ciąg jest domyślnie zaznaczony i wyróżniony.The specified string is selected and highlighted by default.

Wartość zwracanaReturn Value

LB_ERR w przypadku wystąpienia błędu.LB_ERR if an error occurs.

UwagiRemarks

Ta funkcja członkowska jest używana tylko z polami list wielokrotnego wyboru.Use this member function only with multiple-selection list boxes.

Aby zaznaczyć element z pola listy z pojedynczym wyborem, użyj CListBox:: SetCurSel.To select an item from a single-selection list box, use CListBox::SetCurSel.

PrzykładExample

// Select all of the items with an even index and
// deselect all others.
for (int i = 0; i < m_myODListBox.GetCount(); i++)
{
   m_myODListBox.SetSel(i, ((i % 2) == 0));
}

CListBox:: SetTabStopsCListBox::SetTabStops

Ustawia położenie tabulatorów w polu listy.Sets the tab-stop positions in a list box.

void SetTabStops();
BOOL SetTabStops(const int& cxEachStop);

BOOL SetTabStops(
    int nTabStops,
    LPINT rgTabStops);

ParametryParameters

cxEachStopcxEachStop
Tabulatory są ustawiane dla każdej jednostki okna dialogowego cxEachStop .Tab stops are set at every cxEachStop dialog units. Zobacz rgTabStops , aby uzyskać opis jednostki okna dialogowego.See rgTabStops for a description of a dialog unit.

nTabStopsnTabStops
Określa liczbę zatrzymanych tabulatorów w polu listy.Specifies the number of tab stops to have in the list box.

rgTabStopsrgTabStops
Wskazuje pierwszy element członkowski tablicy liczb całkowitych zawierających pozycje tabulatora w jednostkach okna dialogowego.Points to the first member of an array of integers containing the tab-stop positions in dialog units. Jednostka okna dialogowego to odległość pozioma lub pionowa.A dialog unit is a horizontal or vertical distance. Jedna pozioma jednostka okna dialogowego jest równa jednej czwartej bieżącej jednostki szerokości okna dialogowego, a jedna pionowa jednostka okna dialogowego jest równa jednej ósmej aktualnej jednostki wysokości okna dialogowego.One horizontal dialog unit is equal to one-fourth of the current dialog base width unit, and one vertical dialog unit is equal to one-eighth of the current dialog base height unit. Jednostki bazowe okna dialogowego są obliczane na podstawie wysokości i szerokości bieżącej czcionki systemowej.The dialog base units are computed based on the height and width of the current system font. GetDialogBaseUnitsFunkcja systemu Windows zwraca bieżące jednostki bazowe okna dialogowego w pikselach.The GetDialogBaseUnits Windows function returns the current dialog base units in pixels. Tabulatory muszą być sortowane w kolejności rosnącej; karty wstecz są niedozwolone.The tab stops must be sorted in increasing order; back tabs are not allowed.

Wartość zwracanaReturn Value

Niezerowe, jeśli wszystkie karty zostały ustawione; w przeciwnym razie 0.Nonzero if all the tabs were set; otherwise 0.

UwagiRemarks

Aby ustawić, że tabulatory mają być domyślnym rozmiarem 2 jednostek okna dialogowego, wywołaj bezparametrową wersję tej funkcji elementu członkowskiego.To set tab stops to the default size of 2 dialog units, call the parameterless version of this member function. Aby ustawić przetrzymywanie tabulatorów o rozmiarze innym niż 2, wywołaj wersję przy użyciu argumentu cxEachStop .To set tab stops to a size other than 2, call the version with the cxEachStop argument.

Aby ustawić przetrzymywanie tabulatorów na tablicę rozmiarów, użyj wersji z argumentami rgTabStops i nTabStops .To set tab stops to an array of sizes, use the version with the rgTabStops and nTabStops arguments. Tabulator zostanie ustawiony dla każdej wartości w rgTabStops, do numeru określonego przez nTabStops.A tab stop will be set for each value in rgTabStops, up to the number specified by nTabStops.

Aby odpowiedzieć na wywołanie SetTabStops funkcji elementu członkowskiego, pole listy musi być utworzone z stylem LBS_USETABSTOPS .To respond to a call to the SetTabStops member function, the list box must have been created with the LBS_USETABSTOPS style.

PrzykładExample

// Find the pixel width of the largest first substring.
CString str;
CSize sz;
int nIndex, dx = 0;
CDC *pDC = myListBox.GetDC();
for (int i = 0; i < myListBox.GetCount(); i++)
{
   myListBox.GetText(i, str);

   if ((nIndex = str.Find('\t')) != -1)
      str = str.Right(nIndex);

   sz = pDC->GetTextExtent(str);

   if (sz.cx > dx)
      dx = sz.cx;
}
myListBox.ReleaseDC(pDC);

// Set tab stops at every one and 1/3 units
// of the largest string.
// NOTE: Convert pixels to dialog units.
myListBox.SetTabStops((dx * 4 / 3 * 4) / LOWORD(::GetDialogBaseUnits()));

CListBox:: SetTopIndexCListBox::SetTopIndex

Zapewnia widoczność określonego elementu pola listy.Ensures that a particular list-box item is visible.

int SetTopIndex(int nIndex);

ParametryParameters

nIndexnIndex
Określa indeks (liczony od zera) elementu listy.Specifies the zero-based index of the list-box item.

Wartość zwracanaReturn Value

Zero jeśli kończy się pomyślnie lub LB_ERR, jeśli wystąpi błąd.Zero if successful, or LB_ERR if an error occurs.

UwagiRemarks

System przewija pole listy, dopóki element określony przez nIndex pojawia się u góry pola listy lub Osiągnięto maksymalny zakres przewijania.The system scrolls the list box until either the item specified by nIndex appears at the top of the list box or the maximum scroll range has been reached.

PrzykładExample

// Set the first visible item in the list box to be the middle item
m_myListBox.SetTopIndex(m_myListBox.GetCount() / 2);

CListBox:: VKeyToItemCListBox::VKeyToItem

Wywoływane przez platformę, gdy okno listy nadrzędnej odbierze komunikat WM_VKEYTOITEM z pola listy.Called by the framework when the list box's parent window receives a WM_VKEYTOITEM message from the list box.

virtual int VKeyToItem(
    UINT nKey,
    UINT nIndex);

ParametryParameters

nKeynKey
Kod klucza wirtualnego klucza naciśniętego przez użytkownika.The virtual key code of the key the user pressed. Aby uzyskać listę standardowych kodów kluczy wirtualnych, zobacz Winuser. hFor a list of standard virtual key codes, see Winuser.h

nIndexnIndex
Bieżąca pozycja karetki z polem listy.The current position of the list-box caret.

Wartość zwracanaReturn Value

Zwraca wartość-2 w przypadku braku dalszych akcji,-1 dla akcji domyślnej lub nieujemnej liczby, aby określić indeks elementu pola listy, w którym ma zostać wykonana domyślna akcja dla naciśnięcia klawisza.Returns - 2 for no further action, - 1 for default action, or a nonnegative number to specify an index of a list box item on which to perform the default action for the keystroke.

UwagiRemarks

Wiadomość WM_VKEYTOITEM jest wysyłana przez pole listy, gdy odbierze komunikat WM_KEYDOWN, ale tylko wtedy, gdy pole listy spełnia obie poniższe warunki:The WM_VKEYTOITEM message is sent by the list box when it receives a WM_KEYDOWN message, but only if the list box meets both of the following:

Nigdy nie należy wywoływać tej funkcji samodzielnie.You should never call this function yourself. Zastąp tę funkcję, aby zapewnić własną niestandardową obsługę komunikatów klawiatury.Override this function to provide your own custom handling of keyboard messages.

Musisz zwrócić wartość, aby określić, jakie działanie przesłonięcia zostało wykonane.You must return a value to tell the framework what action your override performed. Zwracana wartość-2 wskazuje, że aplikacja obsłuży wszystkie aspekty wyboru elementu i nie wymaga żadnych dalszych akcji przez pole listy.A return value of - 2 indicates that the application handled all aspects of selecting the item and requires no further action by the list box. Przed zwróceniem wartości-2 można ustawić zaznaczenie lub przenieść karetkę lub oba te elementy.Before returning - 2, you could set the selection or move the caret or both. Aby ustawić wybór, użyj SetCurSel lub SetSel.To set the selection, use SetCurSel or SetSel. Aby przenieść karetkę, użyj SetCaretIndex.To move the caret, use SetCaretIndex.

Zwracana wartość-1 oznacza, że pole listy powinno wykonać akcję domyślną w odpowiedzi na naciśnięcie klawisza. Domyślna implementacja zwraca wartość-1.A return value of - 1 indicates that the list box should perform the default action in response to the keystroke.The default implementation returns - 1.

Wartość zwracana 0 lub większa Określa indeks elementu w polu listy i wskazuje, że pole listy powinno wykonać akcję domyślną dla naciśnięcia klawisza dla danego elementu.A return value of 0 or greater specifies the index of an item in the list box and indicates that the list box should perform the default action for the keystroke on the given item.

PrzykładExample

// CMyODListBox is my owner-drawn list box derived from CListBox. This
// example moves the caret down one item on the down key and up one item
// on the up key. The list box control was created with the following
// code:
//   m_myODListBox.Create(
//      WS_CHILD|WS_VISIBLE|WS_BORDER|WS_HSCROLL|WS_VSCROLL|
//      LBS_SORT|LBS_MULTIPLESEL|LBS_OWNERDRAWVARIABLE|LBS_WANTKEYBOARDINPUT,
//      CRect(10,250,200,450), pParentWnd, IDC_MYODLISTBOX);
//
int CMyODListBox::VKeyToItem(UINT nKey, UINT nIndex)
{
   // On key up, move the caret up one item.
   if ((nKey == VK_UP) && (nIndex > 0))
   {
      SetCaretIndex(nIndex - 1);
   }
   // On key down, move the caret down one item.
   else if ((nKey == VK_DOWN) && (nIndex < (UINT)GetCount()))
   {
      SetCaretIndex(nIndex + 1);
   }

   // Do not perform any default processing.
   return -2;
}

Zobacz takżeSee also

Przykład CTRLTEST MFCMFC Sample CTRLTEST
Klasa CWndCWnd Class
Wykres hierarchiiHierarchy Chart
Klasa CWndCWnd Class
Klasa CButtonCButton Class
Klasa CComboBoxCComboBox Class
Klasa CEditCEdit Class
Klasa CScrollBarCScrollBar Class
Klasa CStaticCStatic Class