Специальное рисование органов
управления Одноуровневый список элементов (List-View)
Поскольку органы управления Одноуровневый список элементов (list-view)
имеют подпункты и несколько режимов показа
на экране, Вы будете должны обрабатывать уведомление NM_CUSTOMDRAW
отчасти по-другому, а не так как
для других стандартных органов управления.
Для режима сообщения:
Первое уведомление NM_CUSTOMDRAW будет иметь член
dwDrawStageа связанной структуры NMCUSTOMDRAW установленный в
CDDS_PREPAINT. Возвращается
значение CDRF_NOTIFYITEMDRAW.
Затем Вы получите уведомление NM_CUSTOMDRAW с dwDrawStage
установленным в CDDS_ITEMPREPAINT. Если Вы
определяете новые шрифты или цвета и возвращаете значение
CDRF_NEWFONT, то все подпункты элемента должны
измениться. Если Вы хотите вместо этого
обработать каждый подпункт отдельно, возвратите значение
CDRF_NOTIFYSUBITEMDRAW.
Если Вы в предыдущем шаге возвратили значение
CDRF_NOTIFYSUBITEMDRAW, то затем получите
уведомление NM_CUSTOMDRAW для каждого подпункта с dwDrawStage установленным в
CDDS_SUBITEM | CDDS_ITEMPREPAINT.
Чтобы изменить шрифт или цвет для
этого подпункта, определите новый шрифт или цвет и возвратите
значение CDRF_NEWFONT.
Для режимов большого значка, маленького значка и списка:
Первое уведомление NM_CUSTOMDRAW будет иметь член dwDrawStageа
связанной структуры NMCUSTOMDRAW
установленный в CDDS_PREPAINT. Возвратите значение
CDRF_NOTIFYITEMDRAW.
Затем Вы получите уведомление NM_CUSTOMDRAW с dwDrawStage
установленным в CDDS_ITEMPREPAINT. Вы
можете изменить шрифты или цвета элемента, определяя новые шрифты и
цвета и возвращая значение CDRF_NEWFONT. Поскольку эти режимы не имеют
подпунктов, Вы не будете получать каких-либо
дополнительных уведомлений
NM_CUSTOMDRAW.
Пример обработчика уведомления NM_CUSTOMDRAW
одноуровневого списка элементов дается в следующей статье главы.