Сообщение NM_CUSTOMDRAW

Отправляется минуя очередь сообщений некоторыми стандартными органами управления, чтобы уведомить свои родительские окна об операции рисования. Это уведомление отправляется в форме сообщения WM_NOTIFY.

Чтобы отправить это сообщение, вызовите функцию SendMessage следующим образом.

Синтаксис

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

Параметры

lpNMCustomDraw

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

Орган управления Связанная с ним структура
Одноуровневый список элементов (List view) NMLVCUSTOMDRAW
Подсказка (ToolTip ) NMTTCUSTOMDRAW
Многоуровневый древовидный список элементов (Tree view) NMTVCUSTOMDRAW
Инструментальная панель (Toolbar) NMTBCUSTOMDRAW
Все другие поддерживаемые органы управления NMCUSTOMDRAW

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

Значение, которое ваше приложение может возвратить, зависит от стадии текущей операции рисования. Член dwDrawStage связанной структуры NMCUSTOMDRAW фиксирует значение, которое определяет стадию рисования. Вы должны возвратить одно из нижеследующих значений.

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

Замечания

В текущий момент, поддерживается возможность рисования нижеследующих пользовательских органов управления: Заголовок (header), Одноуровневый список элементов (list view), дополнительная инструментальная панель типа Rebar, инструментальная панель (toolbar), подсказка(ToolTip), настраиваемый ползунковый регулятор (trackbar) и многоуровневый древовидный список элементов (tree view). Рисование для пользовательских органов управления Кнопка (button) также поддерживается, если Вы запускаете Windows XP и имеете манифест приложения , который гарантирует, что версия 6 Comctl32.dll доступна.

Смотри также

Обзор Органы управления Windows, Сообщения, используемые органами управления для специального рисования 

Размещение и совместимость NM_CUSTOMDRAW  

К Windows XP Да
л Windows 2000 Professional Да
и Windows NT Workstation Да  4.0 с Internet Explorer вер. 3.0
е Windows Me Да
н Windows 98 Да  с Internet Explorer вер. 3.0
т Windows 95 Да  с Internet Explorer вер. 3.0
 
С Windows Server 2003 Да
е Windows 2000 Server Да
р Windows NT Server Да  4.0 с Internet Explorer вер. 3.0
в    
е    
р    
Используемая библиотека comctl32.dll вер. 4.70 или позже
Используемая DLL -
Заголовочный файл  
- объявлено в commctrl.h
- включено в -
Unicode Нет
Замечания по платформе Не имеется

 

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

Hosted by uCoz