Цветной столбец CListCtrl Фон без фазы CDDS_ITEMPREPAINT

Хочу закрасить фон первой колонки серым. Проблема с CDDS_ITEMPREPAINT заключается в том, что он окрашивает фон только при наличии элемента. Именно так:

введите описание изображения здесь

На данный момент это мой код:

{
LPNMLVCUSTOMDRAW pNMLVCD = reinterpret_cast<LPNMLVCUSTOMDRAW>(pNMHDR);
*pResult = CDRF_DODEFAULT;
switch (pNMLVCD->nmcd.dwDrawStage)
{
case CDDS_PREPAINT:
*pResult = CDRF_NOTIFYITEMDRAW;
break;

case CDDS_ITEMPREPAINT:
*pResult = CDRF_NOTIFYSUBITEMDRAW;
break;

case CDDS_ITEMPREPAINT | CDDS_SUBITEM:
if (pNMLVCD->iSubItem == 0)
{
pNMLVCD->clrTextBk = RGB(97,97,97);
}
else
{
pNMLVCD->clrTextBk = RGB(255,255,255);
}
break;
}
}

Может кто-нибудь объяснить мне, как решить эту проблему?

0

Решение

Нет способа сделать это с помощью пользовательского розыгрыша.

Даже с владельцемdraw рутины вызываются только для существующих предметов. Чтобы раскрасить свободную область, вам, возможно, придется перезаписать WM_ERASEBKGND, и вам нужно будет делать свои собственные вещи там.

1

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

Других решений пока нет …

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