Delen via


Functies van keuzelijst met invoervak

In dit document worden de functies van de keuzelijst met invoervak besproken. Zie de volgende onderwerpen voor meer informatie:

Speciale functies

Er zijn speciale berichten en functies waarmee een toepassing een lijst met mappen in een keuzelijst met invoervak kan weergeven, gegevens kan koppelen aan lijstitems in een keuzelijst met invoervak en de toetsenbordinterface voor een vervolgkeuzelijst of vervolgkeuzelijst kan wijzigen.

Adreslijstlijsten

Een toepassing kan de namen van bestanden of submappen toevoegen aan een keuzelijst met invoervak door het CB_DIR bericht ernaar te verzenden. De parameter wParam voor dit bericht specificeert de kenmerken van de bestanden die moeten worden toegevoegd en de parameter lParam is een aanwijzer naar de tekenreeks die de bestandsspecificatie definieert.

U kunt de functie DlgDirListComboBox gebruiken om de inhoud van een keuzelijst met invoervak in een dialoogvenster te vervangen. De functie vult de keuzelijst met invoervak met de namen van stations, mappen en bestanden die voldoen aan een opgegeven set criteria. De functie DlgDirSelectComboBoxEx haalt de huidige selectie op in een keuzelijst met invoervak die is geïnitialiseerd door DlgDirListComboBox-. Met deze functies kan de gebruiker een station, map of bestand selecteren vanuit een keuzelijst met invoervak zonder de locatie en naam van het bestand te typen.

De functies DlgDirListComboBox en DlgDirSelectComboBoxEx en het CB_DIR bericht zijn vergelijkbaar met de functies DlgDirList en DlgDirSelectEx en het LB_DIR bericht dat wordt gebruikt met keuzelijsten.

Gegevens die zijn gekoppeld aan lijstitems

Een toepassing kan gegevens koppelen aan de lijstitems in een keuzelijst met invoervak. Het CB_SETITEMDATA bericht koppelt een DWORD--waarde aan een lijstitem en de CB_GETITEMDATA haalt de waarde op die is gekoppeld aan een lijstitem.

In het voorbeeld in Een door eigenaar getekende keuzelijst met invoervak maken itemgegevens gebruikt om een constante te koppelen aan elk item in een vervolgkeuzelijst. Een dergelijke unieke waarde identificeert elk item onafhankelijk van de gesorteerde positie.

Andere toepassingen kunnen itemgegevens gebruiken om een ingang of aanwijzer te koppelen aan een lijstitem. Zo ja, dan kan een toepassing een WM_DELETEITEM bericht verwerken om het opgegeven object te verwijderen of vrij te maken wanneer het lijstitem wordt verwijderd.

De uitgebreide gebruikersinterface

Vervolgkeuzelijsten met invoervak en vervolgkeuzelijsten ondersteunen een alternatieve toetsenbordinterface met de naam uitgebreide gebruikersinterface. De F4-toets wordt standaard geopend of gesloten en met de pijl-omlaag wordt de huidige selectie gewijzigd. In een keuzelijst met invoervak met de uitgebreide gebruikersinterface is de F4-toets echter uitgeschakeld en wordt de vervolgkeuzelijst geopend door op de toets PIJL-OMLAAG te drukken. Bovendien heeft het muiswiel, dat normaal gesproken door de items in de lijst bladert, geen functie wanneer de uitgebreide gebruikersinterface is ingesteld.

Als u de gebruikersinterface voor een keuzelijst met invoervak wilt selecteren, kan een toepassing het CB_SETEXTENDEDUI bericht naar de keuzelijst met invoervak verzenden. Een TRUE-waarde voor de parameter wParam maakt de uitgebreide gebruikersinterface mogelijk; een FALSE waarde stelt de standaardgebruikersinterface in. Om te bepalen of een keuzelijst met invoervak gebruikmaakt van de uitgebreide gebruikersinterface, kan een toepassing het CB_GETEXTENDEDUI bericht naar de keuzelijst met invoervak verzenden.

Cue Banners

Cue banners zijn een nieuwe functie van besturingselementen voor bewerken en keuzelijsten met invoervak. Het doel van een aanwijzingsbanner is om de gebruiker een hint te geven over het doel van een besturingselement voor bewerken of een keuzelijst met invoervak. In de volgende schermafbeelding ziet u een besturingselement voor bewerken met de aanwijzingstekst 'Zoeken'.

schermafbeelding van een besturingselement bewerken met de aanwijzingstekst 'zoeken'

De tekst van een aanwijzingsbanner wordt weergegeven wanneer een besturingselement voor bewerken geen tekst bevat of als er geen keuzelijst met invoervak is geselecteerd. Wanneer de gebruiker tekst invoert in het besturingselement bewerken of een selectie maakt in een keuzelijst met invoervak, verdwijnt de aanwijzingsbanner. Standaard verdwijnt de cue-banner ook wanneer het bewerkingsbesturingselement of de keuzelijst met invoervak de focus krijgt.

Meldingen van keuzelijst met invoervak

Berichten van keuzelijsten met invoervak worden verzonden als meldingscodes in de vorm van WM_COMMAND berichten. De meldingscode wordt opgeslagen in het hoge woord van de parameter wParam en een toepassing kan de volgende meldingscodes voor invoervak verwerken.

Meldingscode Beschrijving
CBN_CLOSEUP Geeft aan dat de lijst in een vervolgkeuzelijst met invoervak of vervolgkeuzelijst bijna wordt gesloten.
CBN_DBLCLK Geeft aan dat de gebruiker heeft dubbelklikken op een lijstitem in een eenvoudige keuzelijst met invoervak.
CBN_DROPDOWN Geeft aan dat de lijst in een vervolgkeuzelijst met invoervak of vervolgkeuzelijst op het punt staat te openen.
CBN_EDITCHANGE Hiermee wordt aangegeven dat de gebruiker de tekst in het bewerkbesturingselement van een eenvoudige keuzelijst of vervolgkeuzelijst heeft gewijzigd. Deze meldingscode wordt verzonden nadat de gewijzigde tekst wordt weergegeven.
CBN_EDITUPDATE Hiermee wordt aangegeven dat de gebruiker de tekst in het bewerkbesturingselement van een eenvoudige keuzelijst of vervolgkeuzelijst heeft gewijzigd. Deze meldingscode wordt verzonden voordat de gewijzigde tekst wordt weergegeven.
CBN_ERRSPACE Geeft aan dat de keuzelijst met invoervak onvoldoende geheugen kan toewijzen om een aanvraag uit te voeren, zoals het toevoegen van een lijstitem.
CBN_KILLFOCUS Hiermee wordt aangegeven dat de invoerfocus van de keuzelijst met invoer bijna verloren gaat.
CBN_SELCHANGE Geeft aan dat de huidige selectie is gewijzigd.
CBN_SELENDCANCEL Hiermee wordt aangegeven dat de selectie in de vervolgkeuzelijst, terwijl deze is neergezet, moet worden genegeerd.
CBN_SELENDOK Hiermee wordt aangegeven dat de vervolgkeuzelijst voor de selectie, terwijl deze is neergezet, moet worden geaccepteerd.
CBN_SETFOCUS Geeft aan dat de keuzelijst met invoer de invoerfocus heeft ontvangen.

 

Standaardgedrag keuzelijst met invoervak

In deze volgende tabel worden de berichten beschreven die specifiek worden verwerkt door de vooraf gedefinieerde procedure voor het klassevenster COMBOBOX.

Bericht Beschrijving
CB_ADDSTRING Hiermee wordt een LB_ADDSTRING bericht naar het lijstvenster verzonden om een lijstitem toe te voegen.
CB_DELETESTRING Hiermee wordt een LB_DELETESTRING bericht naar het lijstvenster verzonden om een lijstitem te verwijderen.
CB_DIR Voegt de bestandsnamen toe die overeenkomen met de opgegeven kenmerken en het pad naar de lijst.
CB_FINDSTRING Hiermee wordt een LB_FINDSTRING bericht naar het lijstvenster verzonden. Dit bericht retourneert de index van het eerste lijstitem dat begint met de opgegeven tekst.
CB_FINDSTRINGEXACT Hiermee wordt een LB_FINDSTRING bericht naar het lijstvenster verzonden. Dit bericht retourneert de index van het eerste lijstitem dat exact overeenkomt met de opgegeven tekst.
CB_GETCOUNT Hiermee wordt een LB_GETCOUNT bericht naar het lijstvenster verzonden. Hiermee wordt het aantal lijstitems geretourneerd.
CB_GETCURSEL Hiermee wordt een LB_GETCURSEL bericht naar het lijstvenster verzonden. Het retourneert de index van het momenteel geselecteerde item, indien van toepassing.
CB_GETDROPPEDCONTROLRECT Vult de opgegeven rechthoekstructuur met de schermcoördinaten van een vervolgkeuzelijst.
CB_GETDROPPEDSTATE Retourneert TRUE als er een vervolgkeuzelijst is geopend; anders wordt FALSEgeretourneerd.
CB_GETDROPPEDWIDTH Retourneert de minimale toegestane breedte, in pixels, van de vervolgkeuzelijst.
CB_GETEDITSEL Hiermee wordt een EM_GETSEL bericht naar het besturingselement bewerken verzonden en wordt de begin- en eindpositie van de huidige selectie geretourneerd. In vervolgkeuzelijsten retourneert de vensterprocedure CB_ERR.
CB_GETEXTENDEDUI Retourneert TRUE als de keuzelijst met invoervak een vervolgkeuzelijst of vervolgkeuzelijst is en de vlag voor de gebruikersinterface uitbreiden is ingesteld; anders wordt FALSEgeretourneerd.
CB_GETHORIZONTALEXTENT Hiermee wordt een LB_GETHORIZONTALEXTENT bericht naar het lijstvenster verzonden. Hiermee wordt de schuifbare breedte, in pixels, van de vervolgkeuzelijst geretourneerd.
CB_GETITEMDATA Hiermee wordt een LB_GETITEMDATA bericht naar het lijstvenster verzonden. Hiermee wordt de waarde geretourneerd die is gekoppeld aan het opgegeven lijstitem.
CB_GETITEMHEIGHT Hiermee wordt een LB_GETITEMHEIGHT bericht naar het lijstvenster verzonden. Hiermee wordt de hoogte, in pixels, van het opgegeven door de eigenaar getekende lijstitem geretourneerd.
CB_GETLBTEXT Hiermee wordt een LB_GETTEXT bericht naar het lijstvenster verzonden. De opgegeven lijsttekst wordt gekopieerd naar de opgegeven buffer.
CB_GETLBTEXTLEN Hiermee wordt een LB_GETTEXTLEN bericht naar het lijstvenster verzonden. Deze retourneert de lengte, in TCHAR's, van de opgegeven lijsttekst.
CB_GETLOCALE Hiermee wordt een LB_GETLOCALE bericht naar het lijstvenster verzonden. Hiermee wordt de huidige landinstelling voor de lijst geretourneerd.
CB_GETMINVISIBLE Hiermee haalt u het minimum aantal zichtbare items op in de vervolgkeuzelijst van een keuzelijst met invoervak.
CB_GETTOPINDEX Hiermee wordt een LB_GETTOPINDEX bericht naar het lijstvenster verzonden. Het retourneert de index van het eerste zichtbare item in de vervolgkeuzelijst.
CB_INITSTORAGE Hiermee wordt een LB_INITSTORAGE bericht naar het lijstvenster verzonden. Hiermee wordt ruimte geïnitialiseerd voor het opgegeven aantal items en het opgegeven aantal bytes voor itemtekenreeksen.
CB_INSERTSTRING Hiermee wordt een LB_INSERTSTRING bericht naar het lijstvenster verzonden. Er wordt een lijstitem ingevoegd op de opgegeven positie.
CB_LIMITTEXT Hiermee wordt een EM_LIMITTEXT bericht verzonden naar het besturingselement bewerken. Hiermee stelt u het maximum aantal tekens in dat een gebruiker in het besturingselement bewerken kan invoeren. In vervolgkeuzelijsten retourneert de vensterprocedure CB_ERR.
CB_RESETCONTENT Hiermee wordt een LB_RESETCONTENT bericht naar het lijstvenster verzonden en wordt de inhoud van de lijst verwijderd.
CB_SELECTSTRING Hiermee wordt een LB_SELECTSTRING bericht naar het lijstvenster verzonden. Hiermee selecteert u het eerste lijstitem, indien aanwezig, dat begint met de tekens in de opgegeven tekst.
CB_SETCURSEL Hiermee wordt een LB_SETCURSEL bericht naar het lijstvenster verzonden en wordt de huidige selectie ingesteld.
CB_SETDROPPEDWIDTH Hiermee stelt u de minimale toegestane breedte in pixels van de vervolgkeuzelijst in.
CB_SETEDITSEL Hiermee wordt een EM_SETSEL bericht verzonden naar het besturingselement bewerken. Hiermee wordt het opgegeven tekstbereik geselecteerd. In vervolgkeuzelijsten retourneert de vensterprocedure CB_ERR.
CB_SETEXTENDEDUI Hiermee stelt u de uitgebreide vlag van de gebruikersinterface in of wist u deze. Met deze vlag worden de toetsen gewijzigd die de lijst openen en sluiten in een vervolgkeuzelijst met invoervak of vervolgkeuzelijst. Als de keuzelijst met invoervak een eenvoudige keuzelijst met invoervak is, retourneert de vensterprocedure CB_ERR.
CB_SETHORIZONTALEXTENT Hiermee wordt een LB_SETHORIZONTALEXTENT bericht naar het lijstvenster verzonden. Hiermee stelt u de schuifbare breedte in pixels van de vervolgkeuzelijst in.
CB_SETITEMDATA Hiermee wordt een LB_SETITEMDATA bericht naar het lijstvenster verzonden. De opgegeven waarde wordt gekoppeld aan een lijstitem.
CB_SETITEMHEIGHT Hiermee wordt een LB_SETITEMHEIGHT bericht naar het lijstvenster verzonden. Hiermee wordt de hoogte van het opgegeven door de eigenaar getekende lijstitem of het selectieveld ingesteld.
CB_SETLOCALE Hiermee wordt een LB_SETLOCALE bericht naar het lijstvenster verzonden en wordt de huidige landinstelling voor de lijst ingesteld. De landinstelling is van invloed op de manier waarop de lijst wordt gesorteerd als deze de CBS_SORT stijl en tekenreeksen heeft, worden toegevoegd met behulp van CB_ADDSTRING.
CB_SETMINVISIBLE Hiermee stelt u het minimum aantal zichtbare items in de vervolgkeuzelijst van een keuzelijst met invoervak in.
CB_SETTOPINDEX Hiermee wordt een LB_SETTOPINDEX bericht naar het lijstvenster verzonden. Hiermee schuift u door de vervolgkeuzelijst, zodat het opgegeven item zich boven aan het zichtbare bereik bevindt.
CB_SHOWDROPDOWN Hiermee wordt de vervolgkeuzelijst weergegeven of verborgen. Dit bericht heeft geen effect op eenvoudige keuzelijsten met invoervak.
WM_CHAR Verwerkt tekeninvoer. In vervolgkeuzelijsten wordt dit bericht doorgegeven aan het lijstvenster, waarmee de selectie wordt verplaatst naar het eerste item dat begint met het opgegeven teken. In eenvoudige keuzelijsten en vervolgkeuzelijsten wordt dit bericht doorgegeven aan het besturingselement bewerken.
WM_CLEAR Hiermee verwijdert u de bewerkingsselectie. In eenvoudige en vervolgkeuzelijsten met invoervak verwerkt het besturingselement bewerken dit bericht. In vervolgkeuzelijsten retourneert de vensterprocedure CB_ERR.
WM_COMMAND Hiermee worden meldingsberichten vanuit het besturingselement- en lijstvenster verwerkt en worden bijbehorende meldingscodes voor keuzelijsten met invoervak verzonden naar het bovenliggende venster.
Voor besturingselementmeldingen bewerken kan de vensterprocedure de huidige selectie, de caret-index en de bovenste index van het lijstvenster bijwerken. Voor lijstmeldingsberichten kan de vensterprocedure de inhoud van het selectieveld bijwerken.
WM_COMPAREITEM Geeft het bericht door aan het bovenliggende venster, zodat de toepassing de relatieve sorteerpositie van twee door de eigenaar getekende lijstitems kan opgeven. Het keuzelijstvenster met invoervak ontvangt dit bericht uit het lijstvenster.
WM_COPY Hiermee kopieert u de bewerkingsselectie naar het Klembord. In eenvoudige en vervolgkeuzelijsten met invoervak verwerkt het besturingselement bewerken dit bericht. In vervolgkeuzelijsten retourneert de vensterprocedure CB_ERR.
WM_CREATE Initialiseert de keuzelijst met invoervak.
WM_CUT Hiermee verwijdert u de bewerkingsselectie en plaatst u deze op het klembord. In eenvoudige en vervolgkeuzelijsten met invoervak verwerkt het besturingselement bewerken dit bericht. In vervolgkeuzelijsten retourneert de vensterprocedure CB_ERR.
WM_DELETEITEM Geeft het bericht door aan het bovenliggende venster, waarbij de toepassing wordt geïnformeerd dat een lijstitem is verwijderd. Het keuzelijstvenster met invoervak ontvangt dit bericht uit het lijstvenster.
WM_DRAWITEM Geeft het bericht door aan het bovenliggende venster, zodat de toepassing het opgegeven lijstitem kan schilderen. Het keuzelijstvenster met invoervak ontvangt dit bericht uit het lijstvenster. De vensterprocedure kan ook van dit bericht afkomstig zijn om de toepassing het selectieveld van een vervolgkeuzelijst te laten schilderen.
WM_ENABLE Hiermee stelt u de status in om muis- en toetsenbordinvoer in of uit te schakelen.
WM_ERASEBKGND Retourneert 1, waarmee wordt aangegeven dat de achtergrond is gewist.
WM_GETDLGCODE Retourneert een combinatie van de waarden DLG_WANTCHARS en DLGC_WANTARROWS.
WM_GETFONT Retourneert de greep naar het huidige lettertype waarmee de keuzelijst met invoervak de tekst tekent.
WM_GETTEXT Hiermee kopieert u de inhoud van het selectieveld naar de opgegeven buffer. In eenvoudige en vervolgkeuzelijsten met invoervak verwerkt het besturingselement bewerken dit bericht.
WM_GETTEXTLENGTH Retourneert de lengte, in tekens, van de tekst in het selectieveld. In eenvoudige en vervolgkeuzelijsten met invoervak verwerkt het besturingselement bewerken dit bericht.
WM_KEYDOWN Verwerkt niet-character toetsenbordinvoer. In vervolgkeuzelijsten wordt dit bericht verzonden naar het lijstvenster, dat zichzelf kan weergeven of verbergen, of de huidige selectie- of caret-index kan wijzigen. In eenvoudige keuzelijsten en vervolgkeuzelijsten wordt dit bericht doorgegeven aan het besturingselement bewerken. Het besturingselement bewerken geeft bepaalde toetsen door aan het lijstvenster, zoals de toetsen Pijl-omhoog en Pijl-omlaag en de F4-toets.
WM_KILLFOCUS Hiermee verbergt u de markering in het selectieveld en sluit u indien nodig de vervolgkeuzelijst. Als het venster dat de invoerfocus ontvangt, deel uitmaakt van de keuzelijst met invoervak (bijvoorbeeld het besturingselement bewerken), wordt dit bericht genegeerd.
WM_LBUTTONDBLCLK Hetzelfde als WM_LBUTTONDOWN.
WM_LBUTTONDOWN Hiermee stelt u de focus in op de keuzelijst met invoervak en kunt u voor vervolgkeuzelijsten en vervolgkeuzelijsten de lijst openen of sluiten. Als de lijst wordt geopend, legt de vensterprocedure de muis vast om selectie in te schakelen door de muisknop te slepen en los te laten.
WM_LBUTTONUP Laat de muisopname los als de muis de lijst heeft geopend.
WM_MEASUREITEM Hiermee wordt het bericht in het bovenliggende venster geplaatst, zodat de toepassing de inhoud van de opgegeven MEASUREITEMSTRUCT structuur kan wijzigen. Het keuzelijstvenster met invoervak ontvangt dit bericht uit het lijstvenster.
WM_MOUSEMOVE Hiermee wordt het bericht in het lijstvenster geplaatst als de muis de lijst heeft geopend en de muisknop nog steeds omlaag is. Hierdoor kan een gebruiker een item selecteren door de muisaanwijzer naar een lijstitem te slepen en vervolgens de knop los te laten.
WM_NCCREATE Hiermee wijst u een interne gegevensstructuur toe die wordt gebruikt door de procedure voor het keuzelijstvenster met invoervak.
WM_NCDESTROY Hiermee worden resources vrijgemaakt die zijn toegewezen als reactie op het WM_NCCREATE bericht.
WM_PAINT Hiermee wordt het ongeldige gebied van de keuzelijst met invoervak weergegeven. Als wParam- niet is NULL-, wordt ervan uitgegaan dat het een apparaatcontext-ingang (DC) is die wordt doorgegeven vanuit een subklassefunctie. In de vensterprocedure wordt de opgegeven domeincontroller gebruikt in plaats van BeginPaint- en EndPaint-aan te roepen.
WM_PASTE Hiermee vervangt u de bewerkingsselectie door de inhoud van het klembord. In eenvoudige en vervolgkeuzelijsten met invoervak verwerkt het besturingselement bewerken dit bericht. In vervolgkeuzelijsten retourneert de vensterprocedure CB_ERR.
WM_SETFOCUS Hiermee stelt u de focus in op het besturingselement bewerken of schakelt u in vervolgkeuzelijsten het selectieveld om en schakelt u de caret in het lijstvenster in.
WM_SETFONT Hiermee wordt de opgegeven lettertypegreep in een interne structuur opgeslagen, worden de afmetingen van het selectieveld en de lijst aangepast en wordt het keuzelijstvenster met invoervak ongeldig gemaakt. Tekst in het selectieveld en de lijst wordt weergegeven in het opgeslagen lettertype.
WM_SETREDRAW Hiermee stelt u de markering voor opnieuw tekenen in of wist u deze. Als de vlag voor opnieuw tekenen is gewist, wordt de keuzelijst met invoervak pas opnieuw geschilderd als de vlag opnieuw is ingesteld.
WM_SETTEXT Hiermee stelt u de inhoud van het besturingselement bewerken in. In eenvoudige en vervolgkeuzelijsten met invoervak verwerkt het besturingselement bewerken dit bericht. In vervolgkeuzelijsten retourneert de vensterprocedure CB_ERR.
WM_SIZE Wijzig de grootte van de onderliggende vensters, indien nodig.
WM_SYSKEYDOWN Hiermee opent of sluit u de vervolgkeuzelijst, afhankelijk van de pijltoets waarop de gebruiker heeft gedrukt.

 

Alle andere berichten worden doorgegeven aan de DefWindowProc--functie voor standaardverwerking.