Поделиться через


Структура NMCUSTOMDRAW (commctrl.h)

Содержит сведения, относящиеся к коду уведомления NM_CUSTOMDRAW .

Синтаксис

typedef struct tagNMCUSTOMDRAWINFO {
  NMHDR     hdr;
  DWORD     dwDrawStage;
  HDC       hdc;
  RECT      rc;
  DWORD_PTR dwItemSpec;
  UINT      uItemState;
  LPARAM    lItemlParam;
} NMCUSTOMDRAW, *LPNMCUSTOMDRAW;

Члены

hdr

Тип: NMHDR

Структура NMHDR , содержащая сведения об этом коде уведомления.

dwDrawStage

Тип: DWORD

Текущий этап рисования. Это одно из следующих значений.

Значение Значение
Глобальные значения:
CDDS_POSTERASE
После завершения цикла стирания.
CDDS_POSTPAINT
После завершения цикла рисования.
CDDS_PREERASE
До начала цикла стирания.
CDDS_PREPAINT
До начала цикла рисования.
Значения, относящиеся к элементу:
CDDS_ITEM
Указывает, что члены dwItemSpec, uItemState и lItemlParam являются допустимыми.
CDDS_ITEMPOSTERASE
После удаления элемента.
CDDS_ITEMPOSTPAINT
После рисования элемента.
CDDS_ITEMPREERASE
Перед удалением элемента.
CDDS_ITEMPREPAINT
Перед рисованием элемента.
CDDS_SUBITEM
Флаг в сочетании с CDDS_ITEMPREPAINT или CDDS_ITEMPOSTPAINT при рисовании подэлемента. Это значение будет задано, только если CDRF_NOTIFYITEMDRAW возвращается из CDDS_PREPAINT.

hdc

Тип: HDC

Дескриптор контекста устройства элемента управления. Используйте этот HDC для выполнения любых функций GDI.

rc

Тип: RECT

Структура RECT , описывающая ограничивающий прямоугольник рисуемой области. Этот элемент инициализируется только уведомлением CDDS_ITEMPREPAINT. Версия 5.80. Этот элемент также инициализируется уведомлением CDDS_PREPAINT.

dwItemSpec

Тип: DWORD_PTR

Номер элемента. То, что содержится в этом элементе, будет зависеть от типа элемента управления, отправляющего уведомление. Сведения о том, что содержится в этом элементе, см. в справочнике по уведомлениям NM_CUSTOMDRAW для конкретного элемента управления.

uItemState

Тип: UINT

Текущее состояние элемента. Это значение представляет собой сочетание следующих флагов.

Значение Значение
CDIS_CHECKED
Для элемента установлен флажок.
CDIS_DEFAULT
Элемент находится в состоянии по умолчанию.
CDIS_DISABLED
Элемент отключен.
CDIS_FOCUS
Элемент находится в фокусе.
CDIS_GRAYED
Элемент выводится серым цветом.
CDIS_HOT
Элемент в настоящее время находится под указателем ("горячим").
CDIS_INDETERMINATE
Элемент находится в неопределенном состоянии.
CDIS_MARKED
Элемент помечен. Смысл этого определяется реализацией .
CDIS_SELECTED
Элемент выбран.
Примечание Этот флаг не работает правильно для элементов управления представления списка, нарисованных владельцем, которые имеют стиль LVS_SHOWSELALWAYS . Для этих элементов управления можно определить, выбран ли элемент, с помощью LVM_GETITEMSTATE (или ListView_GetItemState) и проверки флага LVIS_SELECTED .
 
CDIS_SHOWKEYBOARDCUES

Версия 6.0.Элемент отображает свои подсказки клавиатуры.

Обратите внимание, что Comctl32 версии 6 не распространяется. операционные системы. Чтобы использовать Comctl32.dll версии 6, укажите его в манифесте. Дополнительные сведения о манифестах см. в разделе Включение визуальных стилей.

CDIS_NEARHOT
Элемент является частью элемента управления, который в настоящее время находится под указателем мыши ("горячий"), но сам элемент не является "горячим". Смысл этого определяется реализацией .
CDIS_OTHERSIDEHOT
Элемент является частью разделителя, который в настоящее время находится под указателем мыши ("горячий"), но сам элемент не является "горячим". Смысл этого определяется реализацией .
CDIS_DROPHILITED
В настоящее время элемент является целевым объектом операции перетаскивания.

lItemlParam

Тип: LPARAM

Данные элементов, определяемых приложением.

Комментарии

Значение, возвращаемое приложением, зависит от текущего этапа рисования. Элемент dwDrawStage связанной структуры NMCUSTOMDRAW содержит значение, указывающее этап рисования. Если член dwDrawStage равен CDDS_PREPAINT и CDDS_PREERASE, некоторые элементы управления сначала отправляют сообщение CDDS_PREERASE и ожидают, что возвращаемое значение указывает, какие последующие сообщения будут отправляться. Пример кода, иллюстрирующий состояния и этапы рисования, см. в разделе Настройка внешнего вида элемента управления с помощью пользовательского рисования.

Требования

   
Минимальная версия клиента Windows Vista [только классические приложения]
Минимальная версия сервера Windows Server 2003 [только классические приложения]
Верхняя часть commctrl.h