Почему мой пользовательский рисунок ListView не применяет цвета фона строк в API Win32?C++

Программы на C++. Форум разработчиков
Ответить
Anonymous
 Почему мой пользовательский рисунок ListView не применяет цвета фона строк в API Win32?

Сообщение Anonymous »

Я пытаюсь применить настраиваемые цвета фона строк в LiledView в приложении Win32 на основе диалога с использованием wm_notify и nm_customdraw.
Однако цвета не применяются правильно, и листик отображается с его цветами по умолчанию. LISTVIEW_SETEXTENTISTISTVIEWSTYLE < /p>
Обработанная wm_notify с помощью CDDS_PREPAINT и CDDS_ITEMPREPAINT < /p>
Используется Invalidaterect (), чтобы заставить обновление < /p>
обеспечивается, что элементы ListView добавляются перед чертеж Logic < /p>
. case WM_NOTIFY:
if (((LPNMHDR)lParam)->hwndFrom == featherListView) {
LPNMLVCUSTOMDRAW lplvcd = (LPNMLVCUSTOMDRAW)lParam;

switch (lplvcd->nmcd.dwDrawStage) {
case CDDS_PREPAINT:
return CDRF_NOTIFYITEMDRAW;

case CDDS_ITEMPREPAINT:
return CDRF_NOTIFYSUBITEMDRAW;

case CDDS_SUBITEM | CDDS_ITEMPREPAINT:
{
int row = lplvcd->nmcd.dwItemSpec;
if (row == 0) {
lplvcd->clrTextBk = RGB(50, 100, 200);
lplvcd->clrText = RGB(255, 255, 255);
}
else if (row % 2 == 0) {
lplvcd->clrTextBk = RGB(220, 230, 250);
}
else {
lplvcd->clrTextBk = RGB(240, 240, 255);
}
return CDRF_NEWFONT;
}
}
}
break;
< /code>
Ожидаемое поведение:
Ряд списков должен иметь чередующиеся цвета фона (синий для заголовка, светло -синий цвет для ровных рядов, очень светло -синий для нечетных рядов). < /p>
Фактическое поведение:

. какие -либо необходимые флаги или обработка сообщений?
Должен ли я обрабатывать cdds_subitemprepaint по -разному?>

Подробнее здесь: https://stackoverflow.com/questions/795 ... n-win32-ap
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C++»