В настоящее время я пытаюсь изменить цвет фона элемента 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;
}
}
Это прекрасно работает, и я могу установить цвет на то, что я хотел бы,
Тем не менее, я еще не нашел способ передать цвет в качестве параметра при отправке сообщения.
В конце концов, пользовательское рисование бесполезно для меня, когда я могу назначить только постоянный или случайный цвет.
Спасибо за любую помощь!
Когда вы добавляете элемент в список, вы можете передать свои собственные данные, установив LVIF_PARAM
флаг и заполнение lParam
член LVITEM
состав. Это затем передается обратно вам как NMCUSTOMDRAW::lItemlParam
,
Не смущайтесь lParam
что это идет с WM_NOTIFY
само сообщение, это другое lParam
🙂
Я думаю (точный) ответ лежит здесь: Использование Custom Draw.