Prelucrarea mesaj WM_DRAWITEM

O casetă combo-trase de proprietarul trimite mesajul WM_DRAWITEM sale mamă fereastra dialog caseta de procedură sau de fiecare dată aplicarea trebuie repaint un element din listă. Parametrul lParam puncte la o structură de DRAWITEMSTRUCT , care identifică articolul control și lista. De asemenea, conține informațiile necesare pentru a picta elementul.

Exemplu în crearea o casetă de Dialog Square masă afișează textul element din listă și bitmap asociate cu grupul de produse alimentare. Dacă articolul are focalizarea, de asemenea, atrage o dreptunghiul de focalizare. Înainte de afișarea textului, exemplu setează culorile din prim-plan și de fundal, bazat pe elementul selectat. Deoarece caseta combo are stilul CBS_HASSTRINGS, caseta combo păstrează textul pentru fiecare element din listă care pot fi regăsite printr-un mesaj de CB_GETLBTEXT.

Bitmap-uri utilizate pentru elementul de listă depinde de grupul de produse alimentare. InitGroupListutilizează mesajul CB_SETITEMDATA pentru a asocia o constantă cu fiecare element din listă, care identifică grupul de alimentare corespunzătoare. Procedura fereastra utilizează această valoare, con?inute în membre itemData structura DRAWITEMSTRUCT , pentru a determina care bitmap-uri pentru a afișa. Sistemul utilizează două fișiere bitmap pentru fiecare simbol de grupul de produse alimentare: un bitmap monocrome cu opera?ia de raster SRCAND a șterge regiunea neregulate în spatele imagine, și o culoare bitmap cu opera?ia de raster SRCPAINT să picteze o imagine.