Starting off gently with the first “real” post… As we all know, Windows XP added support for Visual Styles to change look of windows in ways not possible with just color and size changes. But the classic layout system also added a couple of new colors, including COLOR_MENUHILIGHT (Part of the new “flat menus”). Applications that use normal menus get the new flat menu for free, it’s only when you need (basic) things like icons that the new menu look has to be taken into account. The windows shell is the first thing you interact with after log on, so you would think MS would get this right. WRONG! The windows shell team uses owner draw menus in several places and somehow got it wrong everywhere.
As we can see, the normal “Open With” menu item has a two color selection rectangle like the flat menu is supposed to have. What about the sub-menu? It looks like someone forgot about the new flat menu in their owner draw code.
This is not the only owner draw sub-menu seen in a regular file’s context menu, let’s take a look at the “Send To” sub-menu:
Hey, a two color selection rectangle, not bad. I guess they don’t use the same drawing code as the “Open With” menu. But wait, something is wrong… the text should be white, not black. In any theme that has a dark selection color, this is a bit of a problem. The “new” menu also has the same problem, fixing it is as simple as changing one COLOR_* constant with another, yet this problem still exists in Windows XP SP3.