Changing control colors

I’ve been searching the forum and Microsoft’s API documentation (apparently more pages than there are atoms in the known universe) without success. A client wants a Windows program with its own colors. i.e., the title bars, windows backgrounds and all controls in a certain color scheme regardless of the colors the user has set. Changing window and button backgrounds is easy, but how about the title bar, listboxes (background, headings and scrollbars), etc? As far as I can tell, the Microsoft documentation seems to refer to changing all colors in all windows open on the desktop, but I want to change the colors in my program alone without affecting anything else.

I had a quick look at SO and other sources, seems indeed that title bar and scroll bars are off limit and supposed to be set by the user for the whole system.

It seems relatively simple to use a plain box window and canvas to simulate the title bar, but it also means the menu will have to be simulated as well.

Listboxes background can be painted.

Custom scrollbars can be simulated as well. For what its worth, here is my color scrollbar solution.

Pure Xojo, no declare. So, cross platform…

scrollbar.xojo_binary_project[/quote]

Take a look at Jeremy Leroy’s Custom UI http://www.jeremieleroy.com/products/customui.php
It is skinning, rather than colouring, but as you can give each control its own colour it might be a solution for you.

Thank you - that gives me something to work on.

Getting rid of the title bar and simulating it with a canvas it is no problem and thankfully this program will have no menus. It will have popups, however…

Looks interesting. Thanks.

http://msdn.microsoft.com/en-us/library/windows/desktop/dd145212(v=vs.85).aspx

Allows you to draw whatever you want in the frame…

http://www.codeproject.com/Articles/1988/Guide-to-WIN-Paint-for-Beginners Good article

What said the Human Interface Guidelines ?

This is Windows. MS does not have Human Interface Guidelines the way Apple does it.

They do have guidelines, but they are a lot simpler :
http://msdn.microsoft.com/en-us/library/jj651618(v=nav.71).aspx