Отправляется минуя очередь сообщений некоторыми стандартными органами управления, чтобы уведомить свои родительские окна об операции рисования. Это уведомление отправляется в форме сообщения 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 | Нет | |
Замечания по платформе | Не имеется |