Current version

v1.10.4 (stable)

Navigation

Main page
Archived news
Downloads
Documentation
   Capture
   Compiling
   Processing
   Crashes
Features
Filters
Plugin SDK
Knowledge base
Contact info
 
Other projects
   Altirra

Archives

Blog Archive

Fixing the 3D highlight color in Windows 7

One of the things that's been bugging me about Windows 7 is the washed out look of 3D elements in the composited Aero schemes. The main problem is that the 3D face color is far too hot (240, 240, 240), which is easily fixed in the theme color settings to the Classic value of (212, 208, 200). However, attempting to do so reveals another problem:

[OK button - dim highlight]

The highlight color is too dim, (234, 232, 227). It seems that the Window Color and Appearance dialog doesn't let you edit this color directly, but instead computes it (badly) from the 3D color. I was surprised to discover that this same behavior exists in Windows XP; I probably never noticed it because I could always start from the original scheme. That doesn't work if you have to adjust the 3D face color, though.

A bit of digging in the Win32 API reveals that the problematic system color is COLOR_BTNHIGHLIGHT / COLOR_3DHIGHLIGHT, and there is a function SetSysColor() to change it. Unfortunately, while this does fix the colors, it doesn't save them to the Registry. Fortunately, the themes that you save from the Personalization control panel are text files in the AppData\Local\Microsoft\Windows\Themes directory of the user profile, and there is a simple solution:

ButtonHilight=255 255 255

After making this change and reloading the theme, the 3D element contrast is fixed:

[OK button - fixed highlight]

Victory!

The other thing that's been bugging me about the composited themes is the apparent bass-ackward colors for inactive and active windows, where the inactive windows always seem to be brighter than the active window regardless of any fiddling with the color settings... but I haven't found a solution for that yet.

Comments

This blog was originally open for comments when this entry was first posted, but was later closed and then removed due to spam and after a migration away from the original blog software. Unfortunately, it would have been a lot of work to reformat the comments to republish them. The author thanks everyone who posted comments and added to the discussion.