Default System Colors

Kevin Koltzau kevin at
Thu Nov 18 19:43:43 CST 2004

On Thursday 18 November 2004 01:04 am, William Poetra Yoga H wrote:
> This is getting a bit complicated. So right now for the colors, we can use
> uxtheme, right? We should just use GetThemeSysColor(), not GetSysColor(). Btw,
> why does MS have GetThemeColor()? From what I can see in the MSDN, the only
> difference is its calling convention.

For colors, you don't need to do anything in most cases. Theme colors override the default
system colors for all applications.

GetThemeSysColor and GetSysColor are very similar, in most cases just using GetSysColor
is the better option. GetThemeSysColor comes in handy when the application may have
changed the system colors through a call to SetSysColors and you need to ensure you get
the theme color, which is a rare situation.

GetThemeColor allows the system colors to be overridden on a per-control basis based on the part & state.
If you are working on the common controls in wine, or are writing an owner-drawn control that you want to
look like a common control, this is the function to use to retrieve system colors. It will always fall back on
the system colors when a match is not found on the part & state.

In general, a theme-aware application does not need to do anything differently. The two major differences are
owner-drawn controls and the addition of a manifest in the resources.

More information about the wine-devel mailing list