https://bugs.winehq.org/show_bug.cgi?id=57521
--- Comment #6 from Zhiyi Zhang zzhang@codeweavers.com --- (In reply to Stefan Dösinger from comment #5)
Thanks for the explanation - I am getting somewhere:
Adding "[Button]\r\n" "TextColor = 0 255 0\r\n"
To my dark.rc file makes checkbox text green - there's no text color definition for [Button.Checkbox], but other button types override the parent. Obviously setting a TextColor for Button.Checkbox also works, although my feeling is that we should push a few colors up in the hierarchy.
I haven't found a control type that changes the text color of static controls. I tried adding a [Static] entry, but no luck. Adding a TextColor entry in [SysMetrics] didn't help either. Manipulating the SysMetrics section was my first attempt.
I don't think static control has a theme class. It uses WM_CTLCOLORSTATIC to paint its background but I don't see a way to change its text color. I am not sure Windows provides a way for that. Maybe it uses COLOR_WINDOWTEXT or COLOR_BTNTEXT in system metrics. Try changing system metrics on Windows.
Is there a way to retrieve a list of control classes (I guess it is somewhat related to the files in dlls/comctl32) and subclasses?
Yes. Please see dlls/uxtheme/stylemap.c:1412 mapClass and https://learn.microsoft.com/en-us/windows/win32/controls/parts-and-states. I don't think there is a static control class though.