Maneira mais simples de alterar as cores do listview e do treeview
Pergunta
Estou tentando encontrar uma maneira simples de alterar a cor do texto e do plano de fundo no listview
e treeview
controles em WTL ou código Win32 simples.
Eu realmente não quero implementar o desenho completo do proprietário para esses controles, basta alterar as cores usadas.
Quero ter certeza de que as imagens ainda estão desenhadas com a transparência adequada.
Alguma sugestão?
Solução
Dê uma olhada nas seguintes macros:
Outras dicas
Existem também métodos apropriados de CListViewCtrl
e CTreeViewCtrl
classes de wrapper:
- ObterBkColor
- DefinirBkColor
Você também pode dar uma olhada no CCustomDraw::OnItemPrePaint do WTL (se você precisar controlar o desenho de itens individuais)
Um bom artigo que descreve esse processo é aqui
Já faz um tempo que não uso a API win32 diretamente, mas acredito que se você manipular a mensagem WM_ERASEBACKGROUND para seu controle, poderá usar FillRect() em seu manipulador para pintar o fundo usando a cor que desejar.