В настоящее время я пытаюсь изменить цвет фона элемента 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;
}
}
Это отлично работает, и я могу установить цвет на любой, какой захочу. Однако я пока не нашел способа передать цвет в качестве параметра прямо при отправке сообщения. В конце концов, пользовательская отрисовка бесполезна для меня, когда я могу назначить только постоянный или случайный цвет.
Спасибо за любую помощь!
NMLISTVIEW::lParam
похоже на пользовательские данные, которые вам нужны. - person Liviu   schedule 30.05.2013NMCUSTOMDRAW::lItemlParam
, но опять же, я не знаю, как его установить. - person Liviu   schedule 30.05.2013LVIF_PARAM
и заполнив членlParam
структурыLVITEM
. Затем это возвращается к вам какNMCUSTOMDRAW::lItemlParam
. Пусть вас не смущаетlParam
в самом сообщенииWM_NOTIFY
, это другоеlParam
:) - person Jonathan Potter   schedule 30.05.2013