Freigeben über


CListBox-Klasse

Stellt die Funktionalität eines Windows-Listenfelds bereit.

class CListBox : public CWnd

Mitglieder

Öffentliche Konstruktoren

Name

Description

CListBox::CListBox

Erstellt ein CListBox-Objekt.

Öffentliche Methoden

Name

Description

CListBox::AddString

Fügt eine Zeichenfolge ein Listenfeld hinzu.

CListBox::CharToItem

Überschreiben Sie, um von benutzerdefiniertem WM_CHAR, das für Ownerdrawnlistenfelder bereitzustellen behandelt, die nicht Zeichenfolgen haben.

CListBox::CompareItem

Aufgerufen durch das Framework, um die Position eines neuen Elements in einem sortierten Ownerdrawn Listenfeld zu bestimmen.

CListBox::Create

Stellt das Windows-Listenfeld erstellt und fügt es an den CListBox-Objekt.

CListBox::DeleteItem

Aufgerufen vom Framework, wenn der Benutzer ein Element aus einem Ownerdrawn Listenfeld gelöscht wird.

CListBox::DeleteString

Löscht eine Zeichenfolge aus einem Listenfeld.

CListBox::Dir

Fügt Dateinamen, Laufwerk oder beide vom aktuellen Verzeichnis einem Listenfeld hinzu.

CListBox::DrawItem

Aufgerufen vom Framework ausgelöst, wenn ein visueller Aspekt eines Ownerdrawnlistenfelds ändert.

CListBox::FindString

Sucht eine Zeichenfolge in einem Listenfeld.

CListBox::FindStringExact

Sucht die erste Listenfeldzeichenfolge, die eine angegebene Zeichenfolge.

CListBox::GetAnchorIndex

Ruft den nullbasierten Index des aktuellen Ankerelements in einem Listenfeld ab.

CListBox::GetCaretIndex

Bestimmt den Index des Elements, das das Fokusrechteck in einem Mehrfachauswahllistenfeld verfügt.

CListBox::GetCount

Gibt die Anzahl von Zeichenfolgen in einem Listenfeld zurück.

CListBox::GetCurSel

Gibt den nullbasierten Index der aktuell ausgewählten Zeichenfolge in einem Listenfeld zurück.

CListBox::GetHorizontalExtent

Gibt die Breite in Pixel zurück, dass ein Listenfeld einen horizontalen Bildlauf durchgeführt werden kann.

CListBox::GetItemData

Gibt den 32-Bit-Wert zurück, der mit dem Listenfeldelement zugeordnet ist.

CListBox::GetItemDataPtr

Gibt einen Zeiger auf einen Listenfeldelement zurück.

CListBox::GetItemHeight

Bestimmt die Höhe Elemente in einem Listenfeld.

CListBox::GetItemRect

Gibt das umschließende Rechteck des Listenfeldelements zurück, das gerade angezeigt wird.

CListBox::GetListBoxInfo

Ruft die Anzahl von Elementen pro Spalte ab.

CListBox::GetLocale

Ruft den Gebietsschemabezeichner für ein Listenfeld ab.

CListBox::GetSel

Gibt den Auswahlzustand eines Listenfeldelements zurück.

CListBox::GetSelCount

Gibt die Anzahl von Zeichenfolgen zurück, die derzeit in einem Mehrfachauswahllistenfeld ausgewählt werden.

CListBox::GetSelItems

Gibt die Indizes der Zeichenfolgen zurück, die derzeit in einem Listenfeld ausgewählt werden.

CListBox::GetText

Kopiert ein Listenfeldelement in einen Puffer.

CListBox::GetTextLen

Gibt die Länge in Bytes eines Listenfeldelements zurück.

CListBox::GetTopIndex

Gibt den Index der ersten sichtbaren Zeichenfolge in einem Listenfeld zurück.

CListBox::InitStorage

Teilt Speicherblöcke für Listenfeldelemente und Zeichenfolgen zu.

CListBox::InsertString

Fügt eine Zeichenfolge an einer bestimmten Position in einem Listenfeld ein.

CListBox::ItemFromPoint

Gibt den Index des Listenfeldelements neben ein Punkt zurück.

CListBox::MeasureItem

Aufgerufen vom Framework ausgelöst, wenn ein Ownerdrawn Listenfeld erstellt wird, um Listenfelddimensionen zu bestimmen.

CListBox::ResetContent

Löscht alle Einträge von einem Listenfeld.

CListBox::SelectString

Suchen und wählt eine Zeichenfolge in einem Liste, die die Einzelauswahl unterstützt, dies aus.

CListBox::SelItemRange

Wählt aus oder wählt einen Bereich von Zeichenfolgen in einem Mehrfachauswahllistenfeld ab.

CListBox::SetAnchorIndex

Legt den Ankerpunkt in einem Mehrfachauswahllistenfeld fest, um eine erweiterte Auswahl zu starten.

CListBox::SetCaretIndex

Legt das Fokusrechteck auf das Element am angegebenen Index in einem Mehrfachauswahllistenfeld fest.

CListBox::SetColumnWidth

Legt die Spaltenbreite eines mehrspaltigen Listenfelds fest.

CListBox::SetCurSel

Wählt eine Listenfeldzeichenfolge aus.

CListBox::SetHorizontalExtent

Gibt die Breite in Pixel fest, dass ein Listenfeld einen horizontalen Bildlauf durchgeführt werden kann.

CListBox::SetItemData

Legt den 32-Bit-Wert fest, der mit dem Listenfeldelement zugeordnet ist.

CListBox::SetItemDataPtr

Legt einen Zeiger auf das Listenfeldelement fest.

CListBox::SetItemHeight

Gibt die Höhe Elemente in einem Listenfeld fest.

CListBox::SetLocale

Legt den Gebietsschemabezeichner für ein Listenfeld fest.

CListBox::SetSel

Wählt aus oder wählt ein Listenfeldelement in einem Mehrfachauswahllistenfeld ab.

CListBox::SetTabStops

Legt die Tabulationspositionen in einem Listenfeld fest.

CListBox::SetTopIndex

Legt den nullbasierten Index der ersten sichtbaren Zeichenfolge in einem Listenfeld fest.

CListBox::VKeyToItem

Überschreiben Sie, um von benutzerdefiniertem WM_KEYDOWN, das für Listenfelder mit dem LBS_WANTKEYBOARDINPUT Formatsatz bereitzustellen behandelt.

Hinweise

Ein Listenfeld zeigt eine Liste von Elementen, wie Dateinamen an, die der Benutzer anzeigen und auswählen kann.

In einem Liste, die die Einzelauswahl unterstützt, dies kann der Benutzer nur ein Element auswählen. In einem Mehrfachauswahllistenfeld kann ein Bereich von Elementen ausgewählt werden. Wenn der Benutzer ein Element auswählt, wird es hervorgehoben und das Listenfeld sendet eine Benachrichtigung zum übergeordneten Fenster.

Sie können ein Listenfeld entweder einer Dialogfeldvorlage oder direkt im Code erstellen. Um diesen direkt zu erstellen, erstellen Sie das CListBox-Objekt, und rufen Sie dann die Erstellen Sie-Memberfunktion auf um das Windows-Listenfeld-Steuerelement zu erstellen und auf CListBox-Objekt anzufügen. So fügen Sie ein Listenfeld in einer Dialogfeldvorlage verwenden, eine Listenfeldvariable in der Dialogfeldklasse deklarieren, DDX_Control in DoDataExchange-Funktion der Dialogfeldklasse nutzen, um die Membervariable an das Steuerelement zu verbinden. (wird automatisch ausgeführt, wenn Sie eine Steuerungsvariable der Dialogfeldklasse hinzufügen.)

Konstruktion kann ein nur einen Schritt umfassender Prozess in einer Klasse sein, die von CListBox abgeleitet wird. Schreiben Sie einen Konstruktor für die abgeleitete Klasse und rufen Sie Create aus dem Konstruktor auf.

Wenn Sie Windows-Benachrichtigungsmeldungen bearbeiten möchten, die durch ein Listenfeld zu seinem übergeordneten Element gesendet werden (normalerweise eine Klasse wird von abgeleitet CDialog-Klasse), fügen Sie eine Meldungszuordnungseintrags- und Meldungshandlermemberfunktion der übergeordneten Klasse für jede Meldung hinzu.

Jeder Eintrag in der Meldungszuordnung weist folgende Form auf:

ON_Notification( id, memberFxn )

wobei id die ID des untergeordneten Fensters des sendenden Listenfeld-Steuerelements angibt, ist die Benachrichtigungen und memberFxn der Name der übergeordneten Memberfunktion, die Sie geschrieben haben, um die Benachrichtigung zu bearbeiten.

Der Funktionsprototyp des übergeordneten Elements ist, wie folgt:

afx_msg void memberFxn( );

Im Folgenden finden Sie eine Liste der möglichen Meldungszuordnungseinträgen und von Beschreibung der Fälle, in denen es zum übergeordneten gesendet werden:

  • ON_LBN_DBLCLK der Benutzer doppelklickt auf eine Zeichenfolge in einem Listenfeld. Nur ein Listenfeld, das das LBS_NOTIFY Format hat, sendet diese Benachrichtigung.

  • ON_LBN_ERRSPACE das Listenfeld kann nicht genügend Arbeitsspeicher zuordnen, um die Anforderung zu erfüllen.

  • ON_LBN_KILLFOCUS das Listenfeld verliert den Eingabefokus.

  • ON_LBN_SELCANCEL die aktuelle Listenfeld-Auswahl wird abgebrochen. Diese Meldung wird nur gesendet, wenn ein Listenfeld das LBS_NOTIFY Format hat.

  • ON_LBN_SELCHANGE, das die Auswahl im Listenfeld sich geändert hat. Diese Benachrichtigung wird nicht gesendet, wenn die Auswahl durch die CListBox::SetCurSel-Memberfunktion geändert wird. Diese Benachrichtigung gilt nur für ein Listenfeld zu, das das LBS_NOTIFY Format hat. Die LBN_SELCHANGE Benachrichtigung wird für ein Mehrfachauswahllistenfeld gesendet, wenn der Benutzer eine Pfeiltaste gedrückt wird, auch wenn die Auswahl nicht ändert.

  • ON_LBN_SETFOCUS das Listenfeld empfängt den Eingabefokus.

  • ON_WM_CHARTOITEM ein Ownerdrawn Listenfeld, das keine Zeichenfolgen hat, empfängt eine WM_CHAR Meldung.

  • Ein mit dem Listenfeld ON_WM_VKEYTOITEMLBS_WANTKEYBOARDINPUT Format empfängt eine WM_KEYDOWN Meldung.

Wenn Sie ein CListBox-Objekt innerhalb eines Dialogfelds (durch eine Dialogfeldressource) erstellen, wird das Objekt CListBox automatisch zerstört, wenn der Benutzer das Dialogfeld geschlossen wird.

Wenn Sie ein CListBox-Objekt innerhalb eines Fensters erstellen, müssen Sie möglicherweise das CListBox-Objekt zerstören. Wenn Sie das CListBox-Objekt auf dem Stapel erstellen, wird er automatisch zerstört. Wenn Sie das CListBox-Objekt auf dem Heap erstellen, indem Sie die new-Funktion verwenden, müssen Sie delete für das Objekt aufrufen, um es zu zerstören, wenn der Benutzer das übergeordnete Fenster geschlossen wird.

Wenn Sie einen Arbeitsspeicher im CListBox-Objekt zuordnen, überschreiben Sie den CListBox Destruktor, um die Zuordnung freizugeben.

Vererbungshierarchie

CObject

CCmdTarget

CWnd

CListBox

Anforderungen

Header: afxwin.h

Siehe auch

Referenz

CWnd-Klasse

Hierarchiediagramm

CWnd-Klasse

CButton-Klasse

CComboBox-Klasse

CEdit-Klasse

CScrollBar-Klasse

CStatic-Klasse

Konzepte

MFC Sampling CTRLTEST