Самый простой способ изменить цвета списка и дерева

StackOverflow https://stackoverflow.com/questions/45528

  •  09-06-2019
  •  | 
  •  

Вопрос

Я пытаюсь найти простой способ изменить цвет текста и фона в listview и treeview элементы управления в WTL или простом коде Win32.

Я действительно не хочу реализовывать полное рисование владельца для этих элементов управления, просто измените используемые цвета.

Я хочу убедиться, что изображения по-прежнему рисуются с надлежащей прозрачностью.

Какие-либо предложения?

Это было полезно?

Решение

Обратите внимание на следующие макросы:

ListView_SetBkColor
ListView_SetTextColor

TreeView_SetBkColor
TreeView_SetTextColor

Другие советы

Существуют также соответствующие методы CListViewCtrl и CTreeViewCtrl классы-обертки:

  • GetBkColor
  • УстановитьBkColor

Вы также можете взглянуть на CCustomDraw::OnItemPrePaint WTL (это если вам нужно управлять отрисовкой отдельных элементов)

Хорошая статья, описывающая этот процесс: здесь

Прошло много времени с тех пор, как я напрямую использовал Win32 API, но я считаю, что если вы обрабатываете сообщение WM_ERASEBACKGROUND для своего элемента управления, вы можете использовать FillRect() в своем обработчике, чтобы раскрасить фон любым цветом, который вам нравится.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top