Специальное рисование органов управления Одноуровневый список элементов (List-View)


Поскольку органы управления Одноуровневый список элементов (list-view) имеют подпункты и несколько режимов показа на экране, Вы будете должны обрабатывать уведомление NM_CUSTOMDRAW отчасти по-другому, а не так как для других стандартных органов управления.

Для режима сообщения:

  1. Первое уведомление NM_CUSTOMDRAW будет иметь член dwDrawStageа связанной структуры NMCUSTOMDRAW установленный в CDDS_PREPAINT. Возвращается значение CDRF_NOTIFYITEMDRAW.
  2. Затем Вы получите уведомление NM_CUSTOMDRAW с dwDrawStage установленным в CDDS_ITEMPREPAINT. Если Вы определяете новые шрифты или цвета и возвращаете значение CDRF_NEWFONT, то все подпункты элемента должны измениться. Если Вы хотите вместо этого обработать каждый подпункт отдельно, возвратите значение CDRF_NOTIFYSUBITEMDRAW.
  3. Если Вы в предыдущем шаге возвратили значение CDRF_NOTIFYSUBITEMDRAW, то затем получите уведомление NM_CUSTOMDRAW для каждого подпункта с dwDrawStage установленным в CDDS_SUBITEM | CDDS_ITEMPREPAINT. Чтобы изменить шрифт или цвет для этого подпункта, определите новый шрифт или цвет и возвратите значение CDRF_NEWFONT.

Для режимов большого значка, маленького значка и списка:

  1. Первое уведомление NM_CUSTOMDRAW будет иметь член dwDrawStageа связанной структуры NMCUSTOMDRAW установленный в CDDS_PREPAINT. Возвратите значение CDRF_NOTIFYITEMDRAW.
  2. Затем Вы получите уведомление NM_CUSTOMDRAW с dwDrawStage установленным в CDDS_ITEMPREPAINT. Вы можете изменить шрифты или цвета элемента, определяя новые шрифты и цвета и возвращая значение CDRF_NEWFONT. Поскольку эти режимы не имеют подпунктов, Вы не будете получать каких-либо дополнительных уведомлений NM_CUSTOMDRAW.

Пример обработчика уведомления NM_CUSTOMDRAW одноуровневого списка элементов дается в следующей статье главы.

 
Назад в оглавление
На главную страницу

Hosted by uCoz