Open wixbot opened 9 years ago
Area
changed fromburn
tosdk
Release
changed fromv3.9
tov3.x
Case where this bug is being an annoyance.
EULA checkbox uses a font id with Foreground="000000" (black) and Background="ffffff" (white).
In Windows high contrast mode, background remains ffffff (this will never change from the color specified in the font id). Foreground color goes from 000000 to ffffff probably because it's set to whatever the Windows theme is.
You end up with white text on white background for your EULA checkbox.
Only way to ever get the font to show up on windows high contrast mode is to set background to an off color such that black and white text will always contrast against it. Doing this however will make the checkbox stick out like a sore thumb.
I believe others have pointed out in stackoverflow that the alternative is to have checkbox display no text and have separate Text field located to the side of the checkbox to fall in line with whatever font choices they want. This leave the user with the inconvenience of having to actually click on the checkbox as opposed to being able to click on the text to check the box.
When using the std bootstrapper with a theme that contains a checkbox that uses a font with a specific foreground color, that color is ignored and the Windows theme color is used instead (typically black).
It seems that the colors set while handling WM_CTLCOLORSTATIC aren't honored unless the checkbox window has its theme disabled first by calling SetWindowTheme. Calling SetWindowTheme on the checkbox fixes the color being wrong, but also causes the checkbox to no longer render with the pretty Windows theme. I think that is acceptable given the text color being wrong is a much bigger issue, but it might be worth putting an additional option on the checkbox to enable/disable the Windows theme.