Freigeben über


CComboBox-Klasse

Stellt die Funktionalität eines Windows-Kombinationsfelds bereit.

class CComboBox : public CWnd

Mitglieder

Öffentliche Konstruktoren

Name

Description

CComboBox::CComboBox

Erstellt ein CComboBox-Objekt.

Öffentliche Methoden

Name

Description

CComboBox::AddString

Fügt eine Zeichenfolge dem Ende der Liste im Listenfeld eines Kombinationsfelds oder in der sortierten Position für Listenfelder mit dem CBS_SORT Format hinzu.

CComboBox::Clear

Löscht die (Leerzeichen) die aktuelle Auswahl ggf. im Bearbeitungssteuerelement.

CComboBox::CompareItem

Aufgerufen vom Framework, um die relative Position eines neuen Listenelements in einem sortierten Ownerdrawnkombinationsfeld zu bestimmen.

CComboBox::Copy

Kopiert die aktuelle Auswahl ggf. auf die Zwischenablage in CF_TEXT Format.

CComboBox::Create

Stellt das Kombinationsfeld erstellt und fügt es an den CComboBox-Objekt.

CComboBox::Cut

Löscht (Schnitte) die aktuelle Auswahl ggf. im Bearbeitungssteuerelement sowie in den Kopien der gelöschte Text in die Zwischenablage in CF_TEXT Format.

CComboBox::DeleteItem

Aufgerufen vom Framework ausgelöst, wenn ein Listenelement von einem Ownerdrawnkombinationsfeld gelöscht wird.

CComboBox::DeleteString

Löscht eine Zeichenfolge im Listenfeld eines Kombinationsfelds.

CComboBox::Dir

Fügt eine Liste von Dateinamen dem Listenfeld eines Kombinationsfelds hinzu.

CComboBox::DrawItem

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

CComboBox::FindString

Sucht die erste Zeichenfolge, die das angegebene Präfix im Listenfeld eines Kombinationsfelds enthält.

CComboBox::FindStringExact

Sucht die erste Listenfeldzeichenfolge (in einem Kombinationsfeld) diese entspricht die angegebene Zeichenfolge.

CComboBox::GetComboBoxInfo

Ruft Informationen zum CComboBox-Objekt ab.

CComboBox::GetCount

Ruft die Anzahl der Elemente im Listenfeld eines Kombinationsfelds ab.

CComboBox::GetCueBanner

Ruft den Hinweistext ab, der für ein Kombinationsfeld-Steuerelement angezeigt wird.

CComboBox::GetCurSel

Ruft den Index des aktuell ausgewählten Elements ggf. im Listenfeld eines Kombinationsfelds ab.

CComboBox::GetDroppedControlRect

Ruft die Bildschirmkoordinaten des sichtbaren (unten abgelegt) eines Listenfelds Dropdown-Kombinationsfelds ab.

CComboBox::GetDroppedState

Bestimmt, ob das Listenfeld eines Dropdown-Kombinationsfelds sichtbar ist (unten) abgelegt.

CComboBox::GetDroppedWidth

Ruft die minimale zulässigen Breite für den Dropdown-Listenfeld-Teil eines Kombinationsfelds ab.

CComboBox::GetEditSel

Ruft die beginnenden und Endzeichenpositionen der aktuellen Auswahl im Bearbeitungssteuerelement eines Kombinationsfelds ab.

CComboBox::GetExtendedUI

Bestimmt, ob ein Kombinationsfeld die Standardbenutzeroberfläche oder die erweiterte Benutzeroberfläche.

CComboBox::GetHorizontalExtent

Gibt die Breite in Pixel zurück, die der Listenfeldbereich des Kombinationsfelds horizontalen Bildlauf durchgeführt werden kann.

CComboBox::GetItemData

Ruft den von der Anwendung bereitgestellten 32-Bit-Wert ab, der mit dem angegebenen Kombinationsfeldelement zugeordnet ist.

CComboBox::GetItemDataPtr

Ruft den von der Anwendung bereitgestellten 32-Bit-Zeiger ab, der mit dem angegebenen Kombinationsfeldelement zugeordnet ist.

CComboBox::GetItemHeight

Ruft die Höhe Listenelemente in einem Kombinationsfeld ab.

CComboBox::GetLBText

Ruft eine Zeichenfolge im Listenfeld eines Kombinationsfelds ab.

CComboBox::GetLBTextLen

Ruft die Länge einer Zeichenfolge im Listenfeld eines Kombinationsfelds ab.

CComboBox::GetLocale

Ruft den Gebietsschemabezeichner für ein Kombinationsfeld ab.

CComboBox::GetMinVisible

Ruft die Mindestanzahl der sichtbaren Elemente in der Dropdownliste des aktuellen Kombinationsfelds ab.

CComboBox::GetTopIndex

Gibt den Index des ersten Elements sichtbaren im Listenfeldbereich des Kombinationsfelds zurück.

CComboBox::InitStorage

Teilt Speicherblöcke für Elemente und Zeichenfolgen im Listenfeldbereich des Kombinationsfelds auf.

CComboBox::InsertString

Fügt eine Zeichenfolge in das Listenfeld eines Kombinationsfelds ein.

CComboBox::LimitText

Beschränkt die Länge des Texts ein, den der Benutzer in das Bearbeitungssteuerelement eines Kombinationsfelds eingeben kann.

CComboBox::MeasureItem

Aufgerufen durch das Framework, um Kombinationsfelddimensionen zu bestimmen, ob ein Ownerdrawnkombinationsfeld erstellt wird.

CComboBox::Paste

Fügt die Daten aus der Zwischenablage in das Bearbeitungssteuerelement in der aktuellen Cursorposition ein. Daten eingefügt werden, wenn die Zwischenablage Daten in CF_TEXT Format enthält.

CComboBox::ResetContent

Entfernt alle Elemente aus dem Listenfeld und vom Bearbeitungssteuerelement eines Kombinationsfelds.

CComboBox::SelectString

Sucht eine Zeichenfolge im Listenfeld eines Kombinationsfelds und, wenn die Zeichenfolge gefunden wird, wählt die Zeichenfolge im Listenfeld und kopiert die Zeichenfolge an den Bearbeitungssteuerelement.

CComboBox::SetCueBanner

Legt den Hinweistext fest, der für ein Kombinationsfeld-Steuerelement angezeigt wird.

CComboBox::SetCurSel

Wählt eine Zeichenfolge im Listenfeld eines Kombinationsfelds aus.

CComboBox::SetDroppedWidth

Legt die minimale zulässigen Breite für den Dropdown-Listenfeld-Teil eines Kombinationsfelds fest.

CComboBox::SetEditSel

Wählt Zeichen im Bearbeitungssteuerelement eines Kombinationsfelds aus.

CComboBox::SetExtendedUI

Wählt entweder die Standardbenutzeroberfläche oder die erweiterte Benutzeroberfläche für ein Kombinationsfeld aus, das das CBS_DROPDOWN oder CBS_DROPDOWNLIST Format hat.

CComboBox::SetHorizontalExtent

Gibt die Breite in Pixel fest, die der Listenfeldbereich des Kombinationsfelds horizontalen Bildlauf durchgeführt werden kann.

CComboBox::SetItemData

Legt den 32-Bit-Wert fest, der mit dem angegebenen Element in einem Kombinationsfeld zugeordnet ist.

CComboBox::SetItemDataPtr

Legt den 32-Bit-Zeiger fest, der mit dem angegebenen Element in einem Kombinationsfeld zugeordnet ist.

CComboBox::SetItemHeight

Gibt die Höhe Listenelemente in einem Kombinationsfeld oder die Höhe des Teils des Edit-Steuerelements (oder statischen Text) eines Kombinationsfelds fest.

CComboBox::SetLocale

Legt den Gebietsschemabezeichner für ein Kombinationsfeld fest.

CComboBox::SetMinVisibleItems

Legt die Mindestanzahl der sichtbaren Elemente in der Dropdownliste des aktuellen Kombinationsfelds fest.

CComboBox::SetTopIndex

Weist den Listenfeldbereich des Kombinationsfelds mit, um das Element mit dem angegebenen Index zu anzuzeigen.

CComboBox::ShowDropDown

Zeigt an oder blendet das Listenfeld eines Kombinationsfelds aus, das das CBS_DROPDOWN oder CBS_DROPDOWNLIST Format hat.

Hinweise

Ein Kombinationsfeld besteht aus einem Listenfeld, das entweder mit einem statischen Steuerelement oder Bearbeitungssteuerelement kombiniert wird. Der Listenfeldbereich des Steuerelements wird möglicherweise angezeigt jederzeit oder legt möglicherweise nur unten ab, wenn der Benutzer den Dropdownpfeil angezeigt.

Das derzeit ausgewählte Element (falls vorhanden) im Listenfeld wird in dem statischen oder im Bearbeitungssteuerelement angezeigt. Wenn das Kombinationsfeld das Dropdownlistenformat hat, kann der Benutzer das erste Zeichen eines der Elemente in der Liste eingeben, und das Listenfeld, wenn sichtbar, hebt den nächsten Element mit diesem ersten Zeichen hervor.

In der folgenden Tabelle wird das Kombinationsfeld drei Stile.

Format

Wann wird Listenfeld sichtbar?

Statisch oder Bearbeitungssteuerelement?

Einfach

Immer

Edit

Dropdownlisten

Wenn Sie unten abgelegt werden

Edit

Dropdownliste

Wenn Sie unten abgelegt werden

Static

Sie können ein CComboBox-Objekt entweder einer Dialogfeldvorlage oder direkt im Code erstellen. In beiden Fällen zunächst der Konstruktor CComboBox, um CComboBox des Objekts zu erstellen; Rufen Sie dann die Erstellen Sie-Memberfunktion auf, um das Steuerelement zu erstellen und auf CComboBox-Objekt anzufügen.

Wenn Sie Windows-Benachrichtigungsmeldungen bearbeiten möchten, die von einem Kombinationsfeld zu seinem übergeordneten Element gesendet werden (normalerweise eine Klasse wird von abgeleitet CDialog), 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_ Benachrichtigung (id,memberFxn)

wobei id die ID des untergeordneten Fensters des sendenden Kombinationsfeldsteuerelements 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_msgvoidmemberFxn**(**);

Die Reihenfolge, in der bestimmte Benachrichtigungen gesendet werden, kann nicht vorhergesagt werden. Insbesondere wird eine Benachrichtigung CBN_SELCHANGE möglicherweise entweder vor oder nach einer CBN_CLOSEUP Benachrichtigung auf.

Mögliche Meldungszuordnungseinträge sind die folgenden:

  • ON_CBN_CLOSEUP (Windows 3.1 und höher). Im Listenfeld eines Kombinationsfelds geschlossen hat. Diese Benachrichtigung wird nicht für ein Kombinationsfeld gesendet, das das CBS_SIMPLE Format hat.

  • ON_CBN_DBLCLK der Benutzer doppelklickt auf eine Zeichenfolge im Listenfeld eines Kombinationsfelds. Diese Benachrichtigung wird nur für ein Kombinationsfeld mit dem CBS_SIMPLE Format gesendet. Ein Kombinationsfeld mit dem CBS_DROPDOWN oder CBS_DROPDOWNLIST Format, kann ein Doppelklick nicht auftreten, da ein einzelnen Mausklick das Listenfeld ausblendet.

  • ON_CBN_DROPDOWN das Listenfeld eines Kombinationsfelds ist im Begriff, unten abzulegen (sind sichtbar gemacht Sie). Diese Benachrichtigung kann nur für ein Kombinationsfeld mit dem CBS_DROPDOWN oder CBS_DROPDOWNLIST Format auftreten.

  • ON_CBN_EDITCHANGE hat der Benutzer Aktionen ausgeführt, die den Text im Edit-Steuerelement-Teil eines Kombinationsfelds geändert. Im Gegensatz zur CBN_EDITUPDATE Meldung wird diese Meldung gesendet, nachdem Windows den Bildschirm aktualisiert. Es wird nicht gesendet, wenn das Kombinationsfeld CBS_DROPDOWNLIST hat das Format.

  • ON_CBN_EDITUPDATE der Edit-Steuerelement-Teil eines Kombinationsfelds ist ungefähr zur Anzeige geändertem Text. Diese Benachrichtigung gesendet wird, nachdem das Steuerelement den Text formatiert hat, aber bevor der Text anzeigt. Es wird nicht gesendet, wenn das Kombinationsfeld CBS_DROPDOWNLIST hat das Format.

  • ON_CBN_ERRSPACE das Kombinationsfeld kann nicht genügend Arbeitsspeicher zuordnen, um eine bestimmte Anforderung zu erfüllen.

  • ON_CBN_SELENDCANCEL (Windows 3.1 und höher). Gibt die Auswahl des Benutzers sollte abgebrochen werden. Der Benutzer klickt auf ein Element klickt und dann ein anderes Fenster oder Steuerelement auf, um das Listenfeld eines Kombinationsfelds auszublenden. Diese Benachrichtigung wird vor der CBN_CLOSEUP Benachrichtigung gesendet, um anzugeben, dass die Auswahl des Benutzers ignoriert werden soll. Die CBN_SELENDCANCEL oder CBN_SELENDOK Benachrichtigung gesendet wird, wenn die CBN_CLOSEUP Benachrichtigungsmeldung nicht übermittelt wird (wie im Fall eines Kombinationsfelds mit dem CBS_SIMPLE Format).

  • ON_CBN_SELENDOK wählt der Benutzer ein Element aus und dann entweder drückt die EINGABETASTE oder klickt auf die NACH-UNTEN-TASTE, um das Listenfeld eines Kombinationsfelds auszublenden. Diese Benachrichtigung wird vor der CBN_CLOSEUP Meldung gesendet, um anzugeben, dass die Auswahl des Benutzers als gültig betrachtet werden sollte. Die CBN_SELENDCANCEL oder CBN_SELENDOK Benachrichtigung gesendet wird, wenn die CBN_CLOSEUP Benachrichtigungsmeldung nicht übermittelt wird (wie im Fall eines Kombinationsfelds mit dem CBS_SIMPLE Format).

  • ON_CBN_KILLFOCUS das Kombinationsfeld verliert den Eingabefokus.

  • ON_CBN_SELCHANGE die Auswahl im Listenfeld eines Kombinationsfelds ist im Begriff, aufgrund des Benutzers geändert werden, der im Listenfeld klickt oder die Auswahl ändert, indem die Pfeiltasten verwendet. Wenn Sie diese Meldung verarbeitet, kann der Text im Bearbeitungssteuerelement des Kombinationsfelds über GetLBText oder eine andere ähnliche Funktion nur abgerufen werden. GetWindowText kann nicht verwendet werden.

  • ON_CBN_SETFOCUS das Kombinationsfeld empfängt den Eingabefokus.

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

Wenn Sie ein CComboBox-Objekt innerhalb eines anderen Fensterobjekts einbetten, müssen Sie nicht, um es zu zerstören. Wenn Sie das CComboBox-Objekt auf dem Stapel erstellen, wird er automatisch zerstört. Wenn Sie das CComboBox-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 das Windows-Kombinationsfeld zerstört wird.

Hinweis, wenn Sie WM_KEYDOWN und WM_CHAR Meldungen bearbeiten möchten, müssen Sie die Bearbeitung und die Listenfeld-Steuerelemente Kombinationsfelds unterordnen, Klassen von CEdit und von CListBox berechnen, und Handler für diese Nachrichten abgeleiteten Klassen hinzufügen. Weitere Informationen finden Sie unter https://support.microsoft.com/default.aspx?scid=kb;en-us;Q174667 und CWnd::SubclassWindow.

Vererbungshierarchie

CObject

CCmdTarget

CWnd

CComboBox

Anforderungen

Header: afxwin.h

Siehe auch

Referenz

CWnd-Klasse

Hierarchiediagramm

CWnd-Klasse

CButton-Klasse

CEdit-Klasse

CListBox-Klasse

CScrollBar-Klasse

CStatic-Klasse

CDialog-Klasse

Konzepte

MFC Sampling CTRLBARS