Looks like MUI is doing funky things. The only way to make this work cleanly that I've found is to specify a non-transparent background color;
FindWindow $0 "#32770" "" $HWNDPARENT
GetDlgItem $0 $0 1043
CreateFont $1 "Arial" 12 400
SendMessage $0 ${WM_SETFONT} $1 0
SetCtlColors $0 0x000000 0xd4d0c8
The problem is in the '0xd4d0c8'. That color is defined somewhere on the system as being the background color for dialogs. But I'll be darned if I can find where. There's...
HKCU\Control Panel\Colors
...where matching values on my machine are for:
- ButtonFace
- InactiveTitleText
- Menu
- Scrollbar
But none of those particularly strike me as being -the- color used by dialogs. 'll have to look further, or let somebody else butt in about how to get the dialog's color 🙂
Edit:
"ButtonFace" is the one of interest.
Now the next problem is this.. the registry stores the values as "intR intG intB". How on Eerth to get a hex -value- out of that. I can easily turn it into a hex string (splice the string into its three bits, convert each three bits from decimal to hexadecimal).
However...
StrCpy $2 "0xff0000"
SetCtlColors <handle> $2
does not result in the same effect as:
SetCtlColors <handle> "0xff0000"
I'm rather stuck on that part. Anybody? %)