Hmm, I discovered that my solution using NM_CUSTOMDRAW does not quite do what I wanted in a MS Win 10 environment. The issue is the Win 10 themes.
The windows and controls that I use are created using CreateWindow or CreateWindowEx. In a MS Win 10 environment I found that I found that the colour schemes that I tried to impose was not always followed.
If you call the API SetWindowThemeWindow , with the parameters: HWND of the target window / control, followed by 2 empty strings e.g.
SetWindowThemeWindow ( lWnd , _TEXT(“”),_TEXT(“”) ) ;
then the window/control will not follow the Windows Themes. I found it necessary to use this API for:
- the main Window
- Listviews so that I can set the colour of everyother row
- the header of ListViews so that I can change the colour of the font and the background colour.