Eier-trukket kombinasjonsbokser

Et program kan opprette en kombinasjonsboks eier-tegnet for å ta ansvar for male listeelementer. Overordnet vindu eller en dialogboks boksen av en eier trukket kombinasjonsboks ( eieren) mottar WM_DRAWITEM meldinger når en del av kombinasjonsboksen må males. En eier trukket kombinasjonsboks kan vise informasjon annet enn, eller i tillegg til tekststrenger. Eier-trukket kombinasjonsbokser kan være hvilken som helst type. Edit-kontrollen i en enkel eller miste-ned kombinasjonsboks kan imidlertid bare vise tekst, mens eieren maler valgfeltet i en miste-ned liste.

Eieren av en eier trukket kombinasjonsboks må behandle WM_DRAWITEM-melding. Denne meldingen sendes når en del av kombinasjonsboksen må være tegnes på nytt. Eieren kan måtte behandle andre meldinger, avhengig av stilene som er angitt for kombinasjonsboksen.

Et program kan opprette en eier trukket kombinasjonsboks ved å angi stilen CBS_OWNERDRAWFIXED eller CBS_OWNERDRAWVARIABLE. Hvis alle listeelementer i kombinasjonsboksen er den samme høyden, for eksempel strenger eller ikoner, kan et program bruke stilen CBS_OWNERDRAWFIXED. Hvis listeelementer av varierende høyde, punktgrafikk av forskjellige størrelser, for eksempel kan et program bruke CBS_OWNERDRAWVARIABLE-stil.

Eieren av en eier trukket kombinasjonsboks kan behandle en WM_MEASUREITEM -melding til å angi dimensjonene for listeelementer i kombinasjonsboksen. Hvis programmet oppretter kombinasjonsboksen ved hjelp av CBS_OWNERDRAWFIXED-stil, sender systemet WM_MEASUREITEM meldingen bare én gang. Dimensjonene som er angitt av eieren, brukes for alle listeelementer. Hvis det brukes den CBS_OWNERDRAWVARIABLE stilen, sender systemet en WM_MEASUREITEM-melding for hvert listeelement som er lagt til i kombinasjonsboksen. Eieren kan finne ut eller angi høyden på et listeelement når som helst ved hjelp av CB_GETITEMHEIGHT og CB_SETITEMHEIGHT -meldinger, henholdsvis.

Hvis informasjonen som vises i en kombinasjonsboks med eieren trukket inneholder tekst, et program kan holde oversikt over teksten for hvert listeelement ved å angi CBS_HASSTRINGS-stil. Kombinasjonsbokser med stilen CBS_SORT er sortert basert på denne teksten. Hvis en kombinasjonsboks som er sortert, og ikke av CBS_HASSTRINGS-stil, må eieren behandle WM_COMPAREITEM meldingen.

I en eier trukket kombinasjonsboksen, eieren må holde oversikt over elementer som inneholder informasjon om annet enn, eller i tillegg til tekst. En praktisk måte å gjøre dette på, er å lagre håndtaket på informasjonen som elementdata. Hvis du vil ha mer informasjon om varedata, kan du se Data som er knyttet til listeelementer. For å frigjøre dataobjekter som er knyttet til elementer i en kombinasjonsboks, kan eieren behandle meldingen WM_DELETEITEM.

Et eksempel på en eier trukket kombinasjonsboks, kan du se opprette en kombinasjonsboks med Owner-Drawn.

Index