tags:

views:

388

answers:

4

I'm trying to find a simple way to change the colour of the text and background in listview and treeview controls in WTL or plain Win32 code. I really don't want to have to implement full owner drawing for these controls, simply change the colours used. I want to make sure that the images are still drawn with proper transparency. Any suggestions?

A: 

It's been a while since I've use the win32 API directly, but I believe that if you handle the WM_ERASEBACKGROUND message for your control, you can use FillRect() in your handler to paint the background using whatever color you like.

Ferruccio
+2  A: 

Have a look at the following macros:

ListView_SetBkColor
ListView_SetTextColor

TreeView_SetBkColor
TreeView_SetTextColor

ChrisN
+2  A: 

There are also appropriate methods of the CListViewCtrl and CTreeViewCtrl wrapper classes:

  • GetBkColor
  • SetBkColor
macbirdie
+2  A: 

You may also want to take a look at WTL's CCustomDraw::OnItemPrePaint (that's if you need to control the drawing of individual items)

A good article that describes this process is here

Alan