Winapi: изменить цвет TreeView с помощью CustomDraw

В настоящее время я пытаюсь изменить цвет фона элемента TreeView.
Поэтому я использую это сообщение для создания элемента:

    SendMessage(ListView, LVM_INSERTITEM, 0, (LPARAM)&lvI);

Кроме того, я обрабатываю пользовательское сообщение отрисовки следующим образом:

        case WM_NOTIFY:
{
LPNMLISTVIEW pnm = (LPNMLISTVIEW)lParam;
if (pnm->hdr.code == NM_CUSTOMDRAW)
{
LPNMLVCUSTOMDRAW lplvcd = (LPNMLVCUSTOMDRAW)lParam;
switch (lplvcd->nmcd.dwDrawStage)
{
case CDDS_PREPAINT :
return CDRF_NOTIFYITEMDRAW;
case CDDS_ITEMPREPAINT:
lplvcd->clrTextBk = ???;

return CDRF_NEWFONT;
}
}

Это прекрасно работает, и я могу установить цвет на то, что я хотел бы,
Тем не менее, я еще не нашел способ передать цвет в качестве параметра при отправке сообщения.
В конце концов, пользовательское рисование бесполезно для меня, когда я могу назначить только постоянный или случайный цвет.

Спасибо за любую помощь!

1

Решение

Когда вы добавляете элемент в список, вы можете передать свои собственные данные, установив LVIF_PARAM флаг и заполнение lParam член LVITEM состав. Это затем передается обратно вам как NMCUSTOMDRAW::lItemlParam,

Не смущайтесь lParam что это идет с WM_NOTIFY само сообщение, это другое lParam 🙂

2

Другие решения

Я думаю (точный) ответ лежит здесь: Использование Custom Draw.

0

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector