מעבד את ההודעה WM_DRAWITEM

בתיבה משולבת שצוירו על-ידי הבעלים לא שולח את ההודעה WM_DRAWITEM שלו האב חלון או הדו-שיח תיבת שגרת בכל פעם שהיישום יש לצבוע מחדש פריט רשימה. הפרמטר lParam מצביע על מבנה DRAWITEMSTRUCT אשר מזהה פריט הרשימה ובקרה. הוא מכיל גם מידע הדרוש כדי לצבוע את הפריט.

הדוגמה ליצירת תיבת דו-שיח ארוחה כיכר מציגה את הטקסט בפריט רשימה ואת מפת הסיביות המשויכים קבוצת מזון. אם הפריט הוא בעל המוקד, הוא גם ציור מלבן המוקד. לפני הצגת הטקסט, הדוגמה מגדירה את צבעי הקידמה והרקע, בהתבסס על הפריט שנבחר. מכיוון התיבה המשולבת היא בסגנון CBS_HASSTRINGS, התיבה המשולבת שומרת את הטקסט עבור כל פריט הרשימה שבו ניתן לאחזר באמצעות הודעה CB_GETLBTEXT.

מפות סיביות המשמש עבור פריט הרשימה תלויות קבוצת מזון. InitGroupListמשתמש בהודעה CB_SETITEMDATA כדי לשייך קבוע כל פריט ברשימה, זיהוי קבוצת מזון המתאימים. ההליך חלון משתמש בערך זה, הכלולים חבר נתוני פריט של מבנה DRAWITEMSTRUCT , כדי לקבוע אילו מפות סיביות כדי להציג. המערכת משתמשת שתי מפות סיביות עבור כל סימן קבוצת מזון: bitmap בשחור-לבן עם פעולת סריקה SRCAND כדי למחוק את האזור לא סדירה מאחורי התמונה ולאחר מפת סיביות צבע עם פעולת סריקה SRCPAINT כדי לצבוע את התמונה.