Teilen über


CComboBoxEx-Klasse

Erweitert das Kombinationsfeld-Steuerelement durch die Unterstützung für Bildlisten.

Syntax

class CComboBoxEx : public CComboBox

Member

Öffentliche Konstruktoren

Name Beschreibung
CComboBoxEx::CComboBoxEx Erstellt ein CComboBoxEx-Objekt.

Öffentliche Methoden

Name Beschreibung
CComboBoxEx::Create Erstellt das Kombinationsfeld und fügt es an das CComboBoxEx Objekt an.
CComboBoxEx::CreateEx Erstellt ein Kombinationsfeld mit den angegebenen erweiterten Windows-Formatvorlagen und fügt es an ein ComboBoxEx Objekt an.
CComboBoxEx::D eleteItem Entfernt ein Element aus einem ComboBoxEx Steuerelement.
CComboBoxEx::GetComboBoxCtrl Ruft einen Zeiger auf das untergeordnete Kombinationsfeld-Steuerelement ab.
CComboBoxEx::GetEditCtrl Ruft den Handle zum Bearbeitungssteuerelementteil eines ComboBoxEx Steuerelements ab.
CComboBoxEx::GetExtendedStyle Ruft die erweiterten Formatvorlagen ab, die für ein ComboBoxEx Steuerelement verwendet werden.
CComboBoxEx::GetImageList Ruft einen Zeiger auf die Bildliste ab, die einem ComboBoxEx Steuerelement zugewiesen ist.
CComboBoxEx::GetItem Ruft Elementinformationen für ein bestimmtes ComboBoxEx Element ab.
CComboBoxEx::HasEditChanged Bestimmt, ob der Benutzer den Inhalt des ComboBoxEx Bearbeitungssteuerelements durch Eingabe geändert hat.
CComboBoxEx::InsertItem Fügt ein neues Element in ein ComboBoxEx Steuerelement ein.
CComboBoxEx::SetExtendedStyle Legt erweiterte Formatvorlagen innerhalb eines ComboBoxEx Steuerelements fest.
CComboBoxEx::SetImageList Legt eine Bildliste für ein ComboBoxEx Steuerelement fest.
CComboBoxEx::SetItem Legt die Attribute für ein Element in einem ComboBoxEx Steuerelement fest.
CComboBoxEx::SetWindowTheme Legt den visuellen Stil des erweiterten Kombinationsfeld-Steuerelements fest.

Hinweise

CComboBoxEx Zum Erstellen von Kombinationsfeld-Steuerelementen müssen Sie keinen eigenen Bildzeichnungscode mehr implementieren. Verwenden Sie CComboBoxEx stattdessen den Zugriff auf Bilder aus einer Bildliste.

Bildlistenunterstützung

In einem Standard-Kombinationsfeld ist der Besitzer des Kombinationsfelds für das Zeichnen eines Bilds verantwortlich, indem das Kombinationsfeld als Besitzer-Draw-Steuerelement erstellt wird. Bei Verwendung CComboBoxExmüssen Sie die Zeichenformatvorlagen nicht CBS_OWNERDRAWFIXED und CBS_HASSTRINGS festlegen, da sie impliziert sind. Andernfalls müssen Sie Code schreiben, um Zeichnungsvorgänge auszuführen. Ein CComboBoxEx Steuerelement unterstützt bis zu drei Bilder pro Element: eines für einen ausgewählten Zustand, eines für einen nicht ausgewählten Zustand und eines für ein Überlagerungsbild.

Stilarten

CComboBoxEx unterstützt die Formatvorlagen CBS_SIMPLE, CBS_DROPDOWN, CBS_DROPDOWNLIST und WS_CHILD. Alle anderen Formatvorlagen, die beim Erstellen des Fensters übergeben werden, werden vom Steuerelement ignoriert. Nachdem das Fenster erstellt wurde, können Sie andere Kombinationsfeld-Stile bereitstellen, indem Sie die CComboBoxEx Memberfunktion SetExtendedStyle aufrufen. Mit diesen Formatvorlagen können Sie:

  • Legen Sie Zeichenfolgensuchen in der Liste auf Groß-/Kleinschreibung fest.

  • Erstellen Sie ein Kombinationsfeld-Steuerelement, das die Schrägstriche ('/'), umgekehrte Schrägstriche ('\') und Punktzeichen ('.') als Trennzeichen für Wörter verwendet. Auf diese Weise können Benutzer mit der Tastenkombination STRG+PFEIL von Wort zu Wort springen.

  • Legen Sie das Kombinationsfeld-Steuerelement so fest, dass entweder ein Bild angezeigt oder nicht angezeigt wird. Wenn kein Bild angezeigt wird, kann das Kombinationsfeld den Texteinzug entfernen, der ein Bild enthält.

  • Erstellen Sie ein schmales Kombinationsfeld-Steuerelement, einschließlich der Größe, sodass es das enthaltene breitere Kombinationsfeld ausklammert.

Diese Stilkennzeichnungen werden unter "Using CComboBoxEx" weiter beschrieben.

Elementaufbewahrungs- und Rückrufelementattribute

Elementinformationen, z. B. Indizes für Elemente und Bilder, Einzugswerte und Textzeichenfolgen, werden in der Win32-Struktur COMBOBOXEXITEM gespeichert, wie im Windows SDK beschrieben. Die Struktur enthält auch Elemente, die Rückrufkennzeichnungen entsprechen.

Eine ausführliche, konzeptionelle Diskussion finden Sie unter Verwenden von CComboBoxEx.

Vererbungshierarchie

CObject

CCmdTarget

CWnd

CComboBox

CComboBoxEx

Anforderungen

Header: afxcmn.h

CComboBoxEx::CComboBoxEx

Rufen Sie diese Memberfunktion auf, um ein CComboBoxEx Objekt zu erstellen.

CComboBoxEx();

CComboBoxEx::Create

Erstellt das Kombinationsfeld und fügt es an das CComboBoxEx Objekt an.

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

Parameter

dwStyle
Gibt die Kombination von Kombinationsfeldformaten an, die auf das Kombinationsfeld angewendet werden. Weitere Informationen zu Formatvorlagen finden Sie weiter unten in den Hinweisen .

rect
Ein Verweis auf ein CRect-Objekt oder eine RECT-Struktur, die die Position und Größe des Kombinationsfelds darstellt.

pParentWnd
Ein Zeiger auf ein CWnd-Objekt , das das übergeordnete Fenster des Kombinationsfelds ist (in der Regel ein CDialog). Er darf nicht NULL sein.

Nid
Gibt die Steuerelement-ID des Kombinationsfelds an.

Rückgabewert

Nonzero, wenn das Objekt erfolgreich erstellt wurde; andernfalls 0.

Hinweise

Erstellen eines CComboBoxEx Objekts in zwei Schritten:

  1. Rufen Sie CComboBoxEx auf, um ein CComboBoxEx Objekt zu erstellen.

  2. Rufen Sie diese Memberfunktion auf, die das erweiterte Windows-Kombinationsfeld erstellt und an das CComboBoxEx Objekt anfügt.

Wenn Sie aufrufen Create, initialisiert MFC die allgemeinen Steuerelemente.

Wenn Sie das Kombinationsfeld erstellen, können Sie beliebige oder alle folgenden Kombinationsfeldarten angeben:

  • CBS_SIMPLE

  • CBS_DROPDOWN

  • CBS_DROPDOWNLIST

  • CBS_AUTOHSCROLL

  • WS_CHILD

Alle anderen Formatvorlagen, die beim Erstellen des Fensters übergeben werden, werden ignoriert. Das ComboBoxEx Steuerelement unterstützt auch erweiterte Formatvorlagen, die zusätzliche Features bieten. Diese Formatvorlagen werden im Windows SDK in den erweiterten Stilen des ComboBoxEx-Steuerelements beschrieben. Legen Sie diese Stile fest, indem Sie SetExtendedStyle aufrufen.

Wenn Sie erweiterte Fensterstile mit Ihrem Steuerelement verwenden möchten, rufen Sie CreateEx anstelle von Create.

CComboBoxEx::CreateEx

Rufen Sie diese Funktion auf, um ein erweitertes Kombinationsfeld-Steuerelement (ein untergeordnetes Fenster) zu erstellen und es dem CComboBoxEx Objekt zuzuordnen.

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

Parameter

dwExStyle
Gibt die erweiterte Formatvorlage des zu erstellenden Steuerelements an. Eine Liste der erweiterten Windows-Stile finden Sie unter dem dwExStyle-Parameter für CreateWindowEx im Windows SDK.

dwStyle
Formatvorlage des Kombinationsfeld-Steuerelements. Eine Liste der Formatvorlagen finden Sie unter "Erstellen ".

rect
Ein Verweis auf eine RECT-Struktur , die die Größe und Position des zu erstellenden Fensters in Clientkoordinaten von pParentWnd beschreibt.

pParentWnd
Ein Zeiger auf das Fenster, das das übergeordnete Steuerelement ist.

Nid
Die Untergeordnete Fenster-ID des Steuerelements.

Rückgabewert

Ungleich Null, wenn erfolgreich, andernfalls 0 (Null).

Hinweise

Verwenden Sie CreateEx anstelle erweiterter Create Windows-Formatvorlagen, die durch die erweiterte Windows-Formatvorlage WS_EX_ angegeben werden.

CreateEx erstellt das Steuerelement mit den erweiterten Windows-Stilen, die von dwExStyle angegeben werden. Sie müssen erweiterte Formatvorlagen für ein erweitertes Kombinationsfeld-Steuerelement mithilfe von SetExtendedStyle festlegen. Verwenden Sie CreateEx z. B. zum Festlegen von Formatvorlagen wie WS_EX_CONTEXTHELP, aber zum SetExtendedStyle Festlegen von Formatvorlagen wie CBES_EX_CASESENSITIVE. Weitere Informationen finden Sie in den im Thema "ComboBoxEx Control Extended Styles" im Windows SDK beschriebenen Formatvorlagen .

CComboBoxEx::D eleteItem

Entfernt ein Element aus einem ComboBoxEx Steuerelement.

int DeleteItem(int iIndex);

Parameter

iIndex
Nullbasierter Index des zu entfernenden Elements.

Rückgabewert

Die Anzahl der elemente, die im Steuerelement verbleiben. Wenn iIndex ungültig ist, gibt die Funktion CB_ERR zurück.

Hinweise

Diese Memberfunktion implementiert die Funktionalität der Nachricht CBEM_DELETEITEM, wie im Windows SDK beschrieben. Wenn Sie DeleteItem aufrufen, wird eine WM_NOTIFY Nachricht mit CBEN_DELETEITEM Benachrichtigung an das übergeordnete Fenster gesendet.

CComboBoxEx::GetComboBoxCtrl

Rufen Sie diese Memberfunktion auf, um einen Zeiger auf ein Kombinationsfeld-Steuerelement innerhalb eines CComboBoxEx Objekts abzurufen.

CComboBox* GetComboBoxCtrl();

Rückgabewert

Ein Zeiger auf ein CComboBox-Objekt.

Hinweise

Das CComboBoxEx Steuerelement besteht aus einem übergeordneten Fenster, das ein CComboBox.

Das CComboBox Objekt, auf das der Rückgabewert verweist, ist ein temporäres Objekt und wird während der nächsten Leerlaufverarbeitungszeit zerstört.

CComboBoxEx::GetEditCtrl

Rufen Sie diese Memberfunktion auf, um einen Zeiger auf das Bearbeitungssteuerelement für ein Kombinationsfeld abzurufen.

CEdit* GetEditCtrl();

Rückgabewert

Ein Zeiger auf ein CEdit-Objekt .

Hinweise

Ein CComboBoxEx Steuerelement verwendet ein Bearbeitungsfeld, wenn es mit dem CBS_DROPDOWN-Format erstellt wird.

Das CEdit Objekt, auf das der Rückgabewert verweist, ist ein temporäres Objekt und wird während der nächsten Leerlaufverarbeitungszeit zerstört.

CComboBoxEx::GetExtendedStyle

Rufen Sie diese Memberfunktion auf, um die für ein CComboBoxEx Steuerelement verwendeten erweiterten Formatvorlagen abzurufen.

DWORD GetExtendedStyle() const;

Rückgabewert

Der DWORD-Wert, der die erweiterten Formatvorlagen enthält, die für das Kombinationsfeld-Steuerelement verwendet werden.

Hinweise

Weitere Informationen zu diesen Formatvorlagen finden Sie unter ComboBoxEx Control Extended Styles im Windows SDK.

CComboBoxEx::GetImageList

Rufen Sie diese Memberfunktion auf, um einen Zeiger auf die bildliste abzurufen, die von einem CComboBoxEx Steuerelement verwendet wird.

CImageList* GetImageList() const;

Rückgabewert

Ein Zeiger auf ein CImageList-Objekt . Wenn ein Fehler auftritt, gibt diese Memberfunktion NULL zurück.

Hinweise

Das CImageList Objekt, auf das der Rückgabewert verweist, ist ein temporäres Objekt und wird während der nächsten Leerlaufverarbeitungszeit zerstört.

CComboBoxEx::GetItem

Ruft Elementinformationen für ein bestimmtes ComboBoxEx Element ab.

BOOL GetItem(COMBOBOXEXITEM* pCBItem);

Parameter

pCBItem
Ein Zeiger auf eine COMBOBOXEXITEM-Struktur , die die Elementinformationen empfängt.

Rückgabewert

Nonzero, wenn der Vorgang erfolgreich war; andernfalls 0.

Hinweise

Diese Memberfunktion implementiert die Funktionalität der Nachricht CBEM_GETITEM, wie im Windows SDK beschrieben.

CComboBoxEx::HasEditChanged

Bestimmt, ob der Benutzer den Inhalt des ComboBoxEx Bearbeitungssteuerelements durch Eingabe geändert hat.

BOOL HasEditChanged();

Rückgabewert

Nonzero, wenn der Benutzer im Bearbeitungsfeld des Steuerelements eingegeben hat; andernfalls 0.

Hinweise

Diese Memberfunktion implementiert die Funktionalität der Nachricht CBEM_HASEDITCHANGED, wie im Windows SDK beschrieben.

CComboBoxEx::InsertItem

Fügt ein neues Element in ein ComboBoxEx Steuerelement ein.

int InsertItem(const COMBOBOXEXITEM* pCBItem);

Parameter

pCBItem
Ein Zeiger auf eine COMBOBOXEXITEM-Struktur , die die Elementinformationen empfängt. Diese Struktur enthält Rückrufkennzeichnungswerte für das Element.

Rückgabewert

Der Index, bei dem das neue Element bei erfolgreicher Ausführung eingefügt wurde; andernfalls -1.

Hinweise

Wenn Sie anrufen InsertItem, wird eine WM_NOTIFY Nachricht mit CBEN_INSERTITEM Benachrichtigung an das übergeordnete Fenster gesendet.

CComboBoxEx::SetExtendedStyle

Rufen Sie diese Memberfunktion auf, um die erweiterten Formatvorlagen festzulegen, die für ein erweitertes Kombinationsfeld-Steuerelement verwendet werden.

DWORD SetExtendedStyle(
    DWORD dwExMask,
    DWORD dwExStyles);

Parameter

dwExMask
Ein DWORD-Wert, der angibt, welche Formatvorlagen in dwExStyles betroffen sind. Nur die erweiterten Formatvorlagen in dwExMask werden geändert. Alle anderen Stile werden wie folgt beibehalten. Wenn dieser Parameter null ist, sind alle Formatvorlagen in dwExStyles betroffen.

dwExStyles
Ein DWORD-Wert, der die erweiterten Formatvorlagen für das Kombinationsfeld-Steuerelement enthält, die für das Steuerelement festgelegt werden sollen.

Rückgabewert

Ein DWORD-Wert, der die erweiterten Formatvorlagen enthält, die zuvor für das Steuerelement verwendet wurden.

Hinweise

Weitere Informationen zu diesen Formatvorlagen finden Sie unter ComboBoxEx Control Extended Styles im Windows SDK.

Verwenden Sie CreateEx, um ein erweitertes Kombinationsfeld-Steuerelement mit erweiterten Fensterformaten zu erstellen.

CComboBoxEx::SetImageList

Legt eine Bildliste für ein ComboBoxEx Steuerelement fest.

CImageList* SetImageList(CImageList* pImageList);

Parameter

pImageList
Ein Zeiger auf ein CImageList Objekt, das die Bilder enthält, die mit dem CComboBoxEx Steuerelement verwendet werden sollen.

Rückgabewert

Ein Zeiger auf ein CImageList -Objekt, das die bilder enthält, die CComboBoxEx zuvor vom Steuerelement verwendet wurden. NULL, wenn zuvor keine Bildliste festgelegt wurde.

Hinweise

Diese Memberfunktion implementiert die Funktionalität der Nachricht CBEM_SETIMAGELIST, wie im Windows SDK beschrieben. Wenn Sie die Höhe des Standardbearbeitungssteuerelements ändern, rufen Sie die Win32-Funktion SetWindowPos auf, um die Größe des Steuerelements nach dem Aufruf SetImageListzu ändern, oder es wird nicht ordnungsgemäß angezeigt.

Das CImageList Objekt, auf das der Rückgabewert verweist, ist ein temporäres Objekt und wird während der nächsten Leerlaufverarbeitungszeit zerstört.

CComboBoxEx::SetItem

Legt die Attribute für ein Element in einem ComboBoxEx Steuerelement fest.

BOOL SetItem(const COMBOBOXEXITEM* pCBItem);

Parameter

pCBItem
Ein Zeiger auf eine COMBOBOXEXITEM-Struktur , die die Elementinformationen empfängt.

Rückgabewert

Nonzero, wenn der Vorgang erfolgreich war; andernfalls 0.

Hinweise

Diese Memberfunktion implementiert die Funktionalität der Nachricht CBEM_SETITEM, wie im Windows SDK beschrieben.

CComboBoxEx::SetWindowTheme

Legt den visuellen Stil des erweiterten Kombinationsfeld-Steuerelements fest.

HRESULT SetWindowTheme(LPCWSTR pszSubAppName);

Parameter

pszSubAppName
Ein Zeiger auf eine Unicode-Zeichenfolge, die den visuellen Stil des erweiterten Kombinationsfelds enthält, der festgelegt werden soll.

Rückgabewert

Der Rückgabewert wird nicht verwendet.

Hinweise

Diese Memberfunktion emuliert die Funktionalität der CBEM_SETWINDOWTHEME Nachricht, wie im Windows SDK beschrieben.

Siehe auch

MFC-Beispiel-MFCIE
CComboBox-Klasse
Hierarchiediagramm
CComboBox-Klasse