Behandling av WM_DRAWITEM-melding

En eier trukket kombinasjonsboks sender meldingen WM_DRAWITEM til sin overordnede vinduet eller dialogboksen boksen prosedyre hver gang programmet må repaint et listeelement. LParam -parameteren peker til en DRAWITEMSTRUCT struktur som identifiserer varen kontroll og listen. Det inneholder også informasjon som er nødvendig for å male elementet.

Eksempel i å lage en firkant måltid-dialogboks viser listeelement teksten og punktgrafikk som er knyttet til mat-gruppen. Hvis varen har fokus, er det også trekker en fokusrektanglet. Før teksten, settes i eksemplet forgrunns- og bakgrunnsfargene fargene, basert på elementet som er valgt. Fordi kombinasjonsboksen har stilen CBS_HASSTRINGS, vedlikeholder kombinasjonsboksen teksten for hvert listeelement som kan hentes ved å bruke CB_GETLBTEXT -melding.

Punktgrafikk som brukes for listeelementet, avhenger av gruppen mat. InitGroupListbruker CB_SETITEMDATA meldingen skal tilknyttes en konstant hvert listeelement, identifisere tilsvarende mat gruppen. Vinduet fremgangsmåten bruker denne verdien, i itemData -medlem av DRAWITEMSTRUCT -strukturen til å bestemme hvilke punktgrafikk Hvis du vil vise. Systemet bruker to punktgrafikk for hvert mat gruppen symbol: Monokrom punktgrafikk med SRCAND raster operasjonen til å viske ut uregelmessig regionen bak bildet og farge punktgrafikk med SRCPAINT raster operasjonen til å male i bildet.