Вверх ↑
Разработчик
Ответов: 25999
Рейтинг: 2104
#1: 2019-05-24 13:39:32 ЛС | профиль | цитата
Netspirit писал(а):
Это событие приходит для всех строк или только видимых?

ЕМНИП, то только для видимых. Вроде я сейчас глянул MSDN, то есть возможность управлять цветом и шрифтом ячейки нотификационными командами, насчет фона ничего толково не написано. Короче, надо разбираться серьезно. Но все это не реализовано на уровне библиотеки, а отдано на откуп пользователям.

--- Добавлено в 2019-05-24 13:56:49

Вот вроде это дело как реализовывается на C для каждой ячеки

    case CDDS_SUBITEM | CDDS_ITEMPREPAINT:
SelectObject(lplvcd->nmcd.hdc,
GetFontForSubItem(lplvcd->nmcd.dwItemSpec,
lplvcd->nmcd.lItemlParam,
lplvcd->iSubItem));
lplvcd->clrText = GetColorForSubItem(lplvcd->nmcd.dwItemSpec,
lplvcd->nmcd.lItemlParam,
lplvcd->iSubItem));
lplvcd->clrTextBk = GetBkColorForSubItem(lplvcd->nmcd.dwItemSpec,
lplvcd->nmcd.lItemlParam,
lplvcd->iSubItem));
Но если clrText и clrTextBk мы можем подменить, то как это сделать для шрифта, если мы не можем сохранить предыдущий, тк не имеем доступа к его дескриптору, не передается он в _OnLVCustomDraw. Короче, пока не совсем понятно, как это правильно реализовать
карма: 22
Если что-то хочешь сделать хорошо -- сделай сам!
0
Редактировалось 4 раз(а), последний 2019-05-24 14:15:51