Самый простой способ изменить цвета списка и дерева
Вопрос
Я пытаюсь найти простой способ изменить цвет текста и фона в listview
и treeview
элементы управления в WTL или простом коде Win32.
Я действительно не хочу реализовывать полное рисование владельца для этих элементов управления, просто измените используемые цвета.
Я хочу убедиться, что изображения по-прежнему рисуются с надлежащей прозрачностью.
Какие-либо предложения?
Решение
Обратите внимание на следующие макросы:
Другие советы
Существуют также соответствующие методы CListViewCtrl
и CTreeViewCtrl
классы-обертки:
- GetBkColor
- УстановитьBkColor
Вы также можете взглянуть на CCustomDraw::OnItemPrePaint WTL (это если вам нужно управлять отрисовкой отдельных элементов)
Хорошая статья, описывающая этот процесс: здесь
Прошло много времени с тех пор, как я напрямую использовал Win32 API, но я считаю, что если вы обрабатываете сообщение WM_ERASEBACKGROUND для своего элемента управления, вы можете использовать FillRect() в своем обработчике, чтобы раскрасить фон любым цветом, который вам нравится.