Freigeben über


Informationen zu ComboBoxEx-Steuerelementen

ComboBoxEx-Steuerelemente sind Kombinationsfeldsteuerelemente, die native Unterstützung für Elementbilder bieten. Damit Elementbilder leicht zugänglich sind, bietet das Steuerelement Bildlistenunterstützung. Mit diesem Steuerelement können Sie die Funktionalität eines Kombinationsfelds bereitstellen, ohne dass Sie Elementgrafiken manuell zeichnen müssen.

Dieses Thema enthält folgende Abschnitte:

Erstellen von ComboBoxEx-Steuerelementen

Effektiv erstellt ein ComboBoxEx-Steuerelement ein untergeordnetes Kombinationsfeld und führt Basierend auf einer zugewiesenen Bildliste Besitzerziehungsaufgaben für Sie aus. Daher ist der CBS_OWNERDRAWFIXED Stil impliziert, und es ist nicht erforderlich, sie beim Erstellen des Steuerelements zu verwenden. Da Bildlisten zum Bereitstellen von Elementgrafiken verwendet werden, kann der CBS_OWNERDRAWVARIABLE Stil nicht verwendet werden.

Ein ComboBoxEx-Steuerelement muss initialisiert werden, indem die InitCommonControlsEx-Funktion aufgerufen wird und ICC_USEREX_CLASSES in der begleitenden INITCOMMONCONTROLSEX-Struktur angegeben wird.

Sie können ein ComboBoxEx-Steuerelement erstellen, indem Sie die CreateWindowEx-Funktion verwenden und WC_COMBOBOXEX als Fensterklasse angeben. Die -Klasse wird registriert, wenn die InitCommonControlsEx-Funktion wie oben erläutert aufgerufen wird.

ComboBoxEx-Steuerelemente werden ohne Standardbildliste erstellt. Um Elementbilder verwenden zu können, müssen Sie eine Bildliste für das ComboBoxEx-Steuerelement erstellen und sie dem Steuerelement mithilfe der CBEM_SETIMAGELIST-Nachricht zuweisen. Wenn Sie dem ComboBoxEx-Steuerelement keine Bildliste zuweisen, zeigt das Steuerelement nur Elementtext an.

ComboBoxEx-Steuerelementstile

ComboBoxEx-Steuerelemente unterstützen nur die folgenden ComboBox-Stile:

  • CBS_SIMPLE
  • CBS_DROPDOWN
  • CBS_DROPDOWNLIST
  • WS_CHILD

Es gibt auch mehrere erweiterte ComboBoxEx-Steuerelementstile , die nur von ComboBoxEx verwendet werden.

Hinweis

Der CBS_SIMPLE-Stil funktioniert in einigen Fällen möglicherweise nicht ordnungsgemäß.

 

Da das ComboBoxEx-Steuerelement Besitzerziehungsaufgaben basierend auf einer zugewiesenen Bildliste für Sie ausführt, wird die CBS_OWNERDRAWFIXED Stil impliziert. Sie müssen es beim Erstellen des Steuerelements nicht verwenden. Da Bildlisten zum Bereitstellen von Elementgrafiken verwendet werden, kann der CBS_OWNERDRAWVARIABLE Stil nicht verwendet werden. Das ComboBoxEx-Steuerelement unterstützt auch erweiterte Stile des ComboBoxEx-Steuerelements , die zusätzliche Features bieten.

ComboBoxEx-Steuerelementelemente

ComboBoxEx-Steuerelemente verwalten Elementinformationen mithilfe einer COMBOBOXEXITEM-Struktur . Diese Struktur umfasst Elemente für Elementindizes, Bildindizes (Normal, Auswahlzustand und Überlagerung), Einzugswerte, Textzeichenfolgen und elementspezifische Werte.

Das ComboBoxEx-Steuerelement ermöglicht einfachen Zugriff auf Elemente und die Bearbeitung von Elementen über Messaging. Um ein Element hinzuzufügen oder zu löschen, senden Sie die CBEM_INSERTITEM oder CBEM_DELETEITEM Nachricht. Sie können Elemente, die sich derzeit im Steuerelement befindet, mithilfe der CBEM_SETITEM Nachricht ändern.

Rückrufelemente

ComboBoxEx-Steuerelemente unterstützen Rückrufelementattribute. Sie können ein Element als Rückrufelement angeben, wenn Sie es dem Steuerelement mithilfe von CBEM_INSERTITEM hinzufügen. Wenn Sie der COMBOBOXEXITEM-Struktur eines Elements Werte zuweisen, müssen Sie die entsprechenden Rückrufflagwerte angeben. Im Folgenden sind COMBOBOXEXITEM-Strukturelemente und die entsprechenden Rückrufflagwerte aufgeführt.

Member Rückrufwert
pszText LPSTR_TEXTCALLBACK
iImage I_IMAGECALLBACK
iSelectedImage I_IMAGECALLBACK
iOverlay I_IMAGECALLBACK
iIndent I_INDENTCALLBACK

 

Das Steuerelement fordert Informationen zu Rückrufelementen an, indem es CBEN_GETDISPINFO Benachrichtigungscodes sendet. Diese Benachrichtigung wird in Form einer WM_NOTIFY Nachricht gesendet. Wenn Ihre Anwendung diese Nachricht verarbeitet, muss sie die angeforderten Informationen für das Steuerelement bereitstellen. Wenn Sie das Maskenelement der begleitenden COMBOBOXEXITEM-Struktur auf CBEIF_DI_SETITEM festlegen, speichert das Steuerelement die Elementdaten und fordert sie nicht erneut an.

ComboBoxEx-Steuerelementbildlisten

Wenn Sie möchten, dass ein ComboBoxEx-Steuerelement Symbole mit Elementen anzeigt, müssen Sie eine Bildliste angeben. ComboBoxEx-Steuerelemente unterstützen bis zu drei Bilder für ein Element – eines für den ausgewählten Zustand, eines für den nicht ausgewählten Zustand und eines für ein Überlagerungsbild. Weisen Sie einem ComboBoxEx-Steuerelement mithilfe der CBEM_SETIMAGELIST Nachricht eine vorhandene Bildliste zu.

Die COMBOBOXEXITEM-Struktur enthält Elemente, die die Bildindizes für jede Bildliste darstellen (ausgewählt, nicht ausgewählt und überlagert). Legen Sie für jedes Element diese Elemente so fest, dass die gewünschten Bilder angezeigt werden. Es ist nicht erforderlich, Bildindizes für jeden Imagetyp anzugeben. Sie können Bildtypen beliebig mischen und abgleichen, aber legen Sie immer das Maskenelement der COMBOBOXEXITEM-Struktur fest, um anzugeben, welche Elemente verwendet werden. Das Steuerelement ignoriert Member, die nicht als gültig gekennzeichnet wurden.

Hinweis

Wenn Sie das format CBS_SIMPLE verwenden, werden keine Symbole angezeigt.

 

Informationen zu ComboBoxEx-Steuerelementbenachrichtigungen

Ein ComboBoxEx-Steuerelement sendet Benachrichtigungen, um Änderungen in sich selbst zu melden oder Rückrufinformationen anzufordern. Das übergeordnete Element des Steuerelements empfängt alle WM_COMMAND Nachrichten aus dem Kombinationsfeld, das im ComboBoxEx-Steuerelement enthalten ist. Das ComboBoxEx-Steuerelement sendet eigene Benachrichtigungen mithilfe WM_NOTIFY Nachrichten. Daher muss der Besitzer des Steuerelements bereit sein, beide Formen von Benachrichtigungsnachrichten zu verarbeiten.

Im Folgenden finden Sie die ComboBoxEx-spezifischen Benachrichtigungscodes, die über WM_NOTIFY Nachrichten gesendet werden.

benachrichtigungs- Beschreibung
CBEN_BEGINEDIT Signalisiert, dass der Benutzer die Dropdownliste aktiviert oder in das Bearbeitungsfeld des Steuerelements geklickt hat.
CBEN_ENDEDIT Signalisiert, dass der Benutzer ein Element aus der Dropdownliste ausgewählt oder einen Bearbeitungsvorgang im Bearbeitungsfeld abgeschlossen hat.
CBEN_DELETEITEM Meldet, dass ein Element gelöscht wurde.
CBEN_GETDISPINFO Fordert Informationen zu den Attributen eines Elements an.
CBEN_INSERTITEM Signalisiert, dass ein Element in das Steuerelement eingefügt wurde.

 

ComboBoxEx-Steuerelementnachrichtenweiterleitung

Im Folgenden sind die Standard-Kombinationsfeldmeldungen aufgeführt, die ein ComboBoxEx-Steuerelement an sein untergeordnetes Kombinationsfeld weiterleitet. Einige dieser Nachrichten können vom ComboBoxEx-Steuerelement entweder vor oder nach der Weiterleitung der Nachricht verarbeitet werden.

Es folgen die Windows-Meldungen, die ein ComboBoxEx-Steuerelement an das übergeordnete Fenster weiterleitet: