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


код уведомления NM_CUSTOMDRAW

Уведомляет родительское окно элемента управления о пользовательских операциях рисования. Этот код уведомления отправляется в виде сообщения WM_NOTIFY .

NM_CUSTOMDRAW

#ifdef LIST_VIEW_CUSTOM_DRAW

    lpNMCustomDraw = (LPNMLVCUSTOMDRAW) lParam;

#elif TOOL_TIPS_CUSTOM_DRAW

    lpNMCustomDraw = (LPNMTTCUSTOMDRAW) lParam;

#elif TREE_VIEW_CUSTOM_DRAW

    lpNMCustomDraw = (LPNMTVCUSTOMDRAW) lParam;

#elif TOOL_BAR_CUSTOM_DRAW

    lpNMCustomDraw = (LPNMTBCUSTOMDRAW) lParam;

#else

    lpNMCustomDraw = (LPNMCUSTOMDRAW) lParam;

#endif

Параметры

lParam

Указатель на настраиваемую структуру, связанную с рисованием, которая содержит сведения об операции рисования. В следующем списке указаны элементы управления и связанные с ними структуры.

Control Настраиваемая структура рисования
Rebar, trackbar и header NMCUSTOMDRAW
Представление списка NMLVCUSTOMDRAW
Всплывающая подсказка NMTTCUSTOMDRAW
Представление в виде дерева NMTVCUSTOMDRAW
Панель инструментов NMTBCUSTOMDRAW

Возвращаемое значение

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

Код возврата Описание
CDRF_DODEFAULT
Элемент управления будет рисовать сам. Он не будет отправлять дополнительные NM_CUSTOMDRAW коды уведомлений для этого цикла рисования. Этот флаг нельзя использовать с любым другим флагом.
CDRF_DOERASE
Элемент управления будет рисовать только фон.
CDRF_NEWFONT
Приложение указало новый шрифт для элемента; элемент управления будет использовать новый шрифт. Дополнительные сведения об изменении шрифтов см. в разделе Изменение шрифтов и цветов. Это происходит, когда dwDrawStage равно CDDS_ITEMPREPAINT.
CDRF_NOTIFYITEMDRAW
Элемент управления уведомляет родителя о любых операциях рисования, связанных с элементами. Он будет отправлять коды уведомлений NM_CUSTOMDRAW до и после рисования элементов. Это происходит, когда dwDrawStage равно CDDS_PREPAINT.
CDRF_NOTIFYPOSTERASE
Элемент управления уведомляет родительского элемента после стирания элемента. Это происходит, когда dwDrawStage равно CDDS_PREPAINT.
CDRF_NOTIFYPOSTPAINT
Элемент управления отправляет код уведомления NM_CUSTOMDRAW по завершении цикла рисования для всего элемента управления. Это происходит, когда dwDrawStage равно CDDS_PREPAINT.
CDRF_NOTIFYSUBITEMDRAW
Приложение получит код уведомления NM_CUSTOMDRAW с параметром dwDrawStage , равным CDDS_ITEMPREPAINT | CDDS_SUBITEM перед рисованием каждого подэлемента представления списка. Затем можно указать шрифт и цвет для каждого подэлемента отдельно или вернуть CDRF_DODEFAULT для обработки по умолчанию. Это происходит, когда dwDrawStage равно CDDS_ITEMPREPAINT.
CDRF_SKIPDEFAULT
Приложение нарисовало элемент вручную. Элемент управления не будет рисовать элемент . Это происходит, когда dwDrawStage равно CDDS_ITEMPREPAINT.
CDRF_SKIPPOSTPAINT
Элемент управления не будет рисовать прямоугольник фокуса вокруг элемента.

Комментарии

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

Если это сообщение обрабатывается в процедуре диалогового окна, необходимо задать возвращаемое значение как часть данных окна, прежде чем возвращать значение TRUE. Дополнительные сведения см. в разделе DialogProc.

Требования

Требование Значение
Минимальная версия клиента
Windows Vista [только классические приложения]
Минимальная версия сервера
Windows Server 2003 [только классические приложения]
Заголовок
Commctrl.h

См. также раздел

Основные понятия

Настраиваемое рисование