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.