Обработка сообщения WM_DRAWITEM

Владельцем списком посылает сообщение WM_DRAWITEM процедуры его родительского окна или диалогового окна поле каждый раз, когда приложение должно перерисовку элемента списка. Параметр lParam указывает на структуру DRAWITEMSTRUCT , которая определяет элемент управления и списка. Он также содержит сведения, необходимые для рисования элемента.

В примере в создании диалоговое окно Площадь питания отображается текст элемента списка и точечный рисунок, связанный с группой продовольственной. Если элемент имеет фокус, он рисует прямоугольник фокуса. Перед отображением текста, в примере устанавливается основной и фоновый цвета, основанный на выбранный товар. Так как поле со списком стиль CBS_HASSTRINGS, поле со списком содержит текст для каждого элемента списка, которые могут быть получены с помощью сообщения CB_GETLBTEXT.

Растровые изображения, используемые для элемента списка зависит от продовольственной группы. InitGroupListиспользует CB_SETITEMDATA сообщение для связывания константу с каждым элементом списка, выявления соответствующей группы продуктов питания. Процедуре окна использует это значение, содержащееся в ItemData отсутствует член DRAWITEMSTRUCT структуры, чтобы определить какие точечных рисунков для отображения. Система использует два для каждого символа группы продуктов питания: монохромный точечный рисунок с SRCAND растровые операции стереть нерегулярных региона за изображение и цвет растровое изображение с SRCPAINT растровые операции для рисования изображения.