Delen via


Informatie over ComboBoxEx-besturingselementen

ComboBoxEx-besturingselementen zijn keuzelijstbesturingselementen met invoervak die systeemeigen ondersteuning bieden voor itemafbeeldingen. Om itemafbeeldingen eenvoudig toegankelijk te maken, biedt het besturingselement ondersteuning voor afbeeldingenlijst. Met dit bedieningselement kunt u de functionaliteit van een keuzelijst met invoervak mogelijk maken zonder dat u handmatig afbeeldingen van items hoeft te tekenen.

Dit onderwerp bevat de volgende secties.

Het maken van ComboBoxEx-besturingselementen

Een ComboBoxEx-besturingselement maakt een onderliggend invoervak aan en voert eigen tekentaken voor u uit op basis van een toegewezen afbeeldingenlijst. Daarom wordt de CBS_OWNERDRAWFIXED stijl impliciet geacht en is het niet nodig om deze te benutten bij het maken van het besturingselement. Omdat afbeeldingslijsten worden gebruikt om itemafbeeldingen op te geven, kan de stijl CBS_OWNERDRAWVARIABLE niet worden gebruikt.

Een besturingselement ComboBoxEx moet worden geïnitialiseerd door de functie InitCommonControlsEx aan te roepen, waarbij ICC_USEREX_CLASSES wordt opgegeven in de bijbehorende INITCOMMONCONTROLSEX- structuur.

U kunt een besturingselement ComboBoxEx maken met behulp van de functie CreateWindowEx en WC_COMBOBOXEX opgeven als de vensterklasse. De klasse wordt geregistreerd wanneer de functie InitCommonControlsEx wordt aangeroepen zoals hierboven wordt uitgelegd.

ComboBoxEx-besturingselementen worden gemaakt zonder een standaardafbeeldingslijst. Als u itemafbeeldingen wilt gebruiken, moet u een lijst met afbeeldingen maken voor het besturingselement ComboBoxEx en deze toewijzen aan het besturingselement met behulp van het CBEM_SETIMAGELIST bericht. Als u geen lijst met afbeeldingen toewijst aan het besturingselement ComboBoxEx, wordt alleen itemtekst weergegeven.

Stijlen voor besturingselement ComboBoxEx

ComboBoxEx-besturingselementen ondersteunen alleen de volgende combinatieboxstijlen:

  • CBS_SIMPLE
  • CBS_DROPDOWN
  • CBS_DROPDOWNLIST
  • WS_CHILD

Er zijn ook verschillende ComboBoxEx Control Extended Styles die alleen worden gebruikt door ComboBoxEx.

Notitie

De stijl CBS_SIMPLE werkt in sommige gevallen mogelijk niet goed.

 

Omdat de ComboBoxEx-control taken voor u uitvoert op basis van een toegewezen beeldenset, wordt de stijl CBS_OWNERDRAWFIXED impliciet; het is niet nodig om deze te gebruiken bij het maken van de control. Omdat afbeeldingslijsten worden gebruikt om itemafbeeldingen op te geven, kan de stijl CBS_OWNERDRAWVARIABLE niet worden gebruikt. Het besturingselement ComboBoxEx ondersteunt ook uitgebreide stijlen voor ComboBoxEx-besturingselement die extra functies bieden.

Besturingselementitems voor ComboBoxEx

Met comboBoxEx-besturingselementen worden itemgegevens bijgehouden met behulp van een COMBOBOXEXITEM structuur. Deze structuur bevat leden voor itemindexen, afbeeldingsindexen (normaal, selectiestatus en overlay), inspringingswaarden, tekenreeksen en itemspecifieke waarden.

Het besturingselement ComboBoxEx biedt eenvoudig toegang tot en manipulatie van items via berichten. Als u een item wilt toevoegen of verwijderen, verzendt u het CBEM_INSERTITEM of CBEM_DELETEITEM bericht. U kunt items in het besturingselement wijzigen door het CBEM_SETITEM bericht te gebruiken.

Terugbelitems

ComboBoxEx-besturingselementen ondersteunen callback-itemkenmerken. U kunt een item opgeven als een callback-item wanneer u het aan het besturingselement toevoegt met behulp van CBEM_INSERTITEM. Wanneer u waarden toewijst aan de COMBOBOXEXITEM-structuur van een item, moet u de juiste callbackvlagwaarden opgeven. Hieronder ziet u de COMBOBOXEXITEM structuurelementen en de bijbehorende callbackvlagwaarden.

Lid Callback-waarde
pszText LPSTR_TEXTCALLBACK
iImage I_IMAGECALLBACK
iSelectedImage I_IMAGECALLBACK
iOverlay I_IMAGECALLBACK
iIndent I_INDENTCALLBACK

 

Het besturingselement vraagt informatie over callback-items aan door CBEN_GETDISPINFO meldingscodes te verzenden. Deze melding wordt verzonden in de vorm van een WM_NOTIFY bericht. Wanneer uw toepassing dit bericht verwerkt, moet deze de gevraagde informatie voor het besturingselement opgeven. Als u het lid van het masker van de bijbehorende COMBOBOXEXITEM structuur instelt op CBEIF_DI_SETITEM, worden de itemgegevens opgeslagen en worden deze niet opnieuw aangevraagd.

Afbeeldingenlijsten voor ComboBoxEx-besturingselementen

Als u wilt dat een ComboBoxEx-besturingselement pictogrammen toont bij items, moet u een afbeeldingslijst opgeven. ComboBoxEx-besturingselementen ondersteunen maximaal drie afbeeldingen voor een item: één voor de geselecteerde status, één voor de niet-geselecteerde status en één voor een overlayafbeelding. Wijs een bestaande lijst met afbeeldingen toe aan een besturingselement ComboBoxEx met behulp van het CBEM_SETIMAGELIST bericht.

De structuur COMBOBOXEXITEM bevat leden die de afbeeldingsindexen voor elke lijst met afbeeldingen vertegenwoordigen (geselecteerd, niet geselecteerd en overlay). Stel voor elk item deze leden in om de gewenste afbeeldingen weer te geven. Het is niet nodig om afbeeldingsindexen op te geven voor elk type afbeelding. U kunt afbeeldingstypen combineren en aanpassen zoals u wilt, maar stel altijd het masker in het lid van de COMBOBOXEXITEM-structuur om aan te geven welke leden worden gebruikt. Het besturingselement negeert leden die niet als geldig zijn gemarkeerd.

Notitie

Als u de stijl CBS_SIMPLE gebruikt, worden pictogrammen niet weergegeven.

 

Meldingen over ComboBoxEx-controle

Met een ComboBoxEx-besturingselement worden meldingsberichten verzonden om wijzigingen binnen het besturingselement te rapporteren of om informatie over callback-items aan te vragen. Het ouderbesturingselement ontvangt alle WM_COMMAND berichten van de combo box in het ComboBoxEx-besturingselement. Het besturingselement ComboBoxEx verzendt zijn eigen meldingen met behulp van WM_NOTIFY meldingen. Als gevolg hiervan moet de eigenaar van het besturingselement zijn voorbereid om beide vormen van meldingsberichten te verwerken.

Hieronder ziet u de meldingscodes voor ComboBoxEx die via WM_NOTIFY berichten worden verzonden.

Melding beschrijving
CBEN_BEGINEDIT Signaal dat de gebruiker de vervolgkeuzelijst heeft geactiveerd of in het bewerkvak van het element heeft geklikt.
CBEN_ENDEDIT Geeft aan dat de gebruiker een item in de vervolgkeuzelijst heeft geselecteerd of dat een bewerking in het invoervak is voltooid.
CBEN_DELETEITEM Rapporteert dat een item is verwijderd.
CBEN_GETDISPINFO Vraagt informatie op over de kenmerken van een item.
CBEN_INSERTITEM Signalen dat een item in het besturingselement is ingevoegd.

 

Berichten doorsturen met ComboBoxEx

Hieronder ziet u de standaardberichten van een keuzelijst met invoervak die door een ComboBoxEx-besturingselement worden doorgestuurd naar de onderliggende keuzelijst met invoervak. Sommige van deze berichten kunnen worden verwerkt door het besturingselement ComboBoxEx voor of nadat het bericht is doorgestuurd.

Hieronder ziet u de Windows-berichten die een ComboBoxEx-controle doorstuurt naar het oudervenster: