5 comments

[ 3.0 ms ] story [ 23.7 ms ] thread
I can't see this being anything more than superficial, only because Win32 applications will still look totally out of place when run on Windows.

A simple example of this is Notepad.

With Windows setup for 'dark mode', Windows Explorer takes on a nice 'black themed' appearance, yet starting Notepad present the user with a totally different 'white themed' application.

The reason Notepad doesn't take on the 'black theme' is because it uses the older Win32 GUI controls and those older controls don't adhere to the modern Windows look.

There was a time these older controls would automatically take on any new Windows theme, but Microsoft broke that link with Window 8 and the new Metro UI controls introduced with that version.

To make Notepad look at home in a 'black themed' Windows would require removing those older Win32 GUI controls and replacing them with a Metro equivalent.

Even Microsoft with all it's resources has not bothered to do this re-work only because it is not a trivial exercise.

The old Win32 controls can change their background color just fine. I used these controls in VB6 (1998) and they all had background and foreground properties. It will take time for each app, but won't require a full re-write. More like a single if condition in the startup code.

For this specific case of Notepad:

https://docs.microsoft.com/en-us/windows/win32/controls/wm-c...

> If an application processes this message, the return value is a handle to a brush that the system uses to paint the background of the static control.

Discussion from 2001 referencing the 1998 MSDN documentation:

https://www.vbforums.com/showthread.php?98513-How-can-I-trig...

<Rant> People who haven't used Win32 in its hey day forget how many apps had awesome and unusual look and feel and only relate the the default Windows apps with no effort whatsoever at customization. Except the touch stuff, Win32 can do pretty much anything Metro can and probably more. </Rant>

Some of the controls allow you to change their colors, but that is not true for all controls.

As an example consider the Win32 based wxWidgets library.

The developers state it can't be made to support 'dark mode' only because not all Windows controls allow for easy color changing:

https://forums.wxwidgets.org/viewtopic.php?t=45869

Implementing what's possible to implement and leaving the rest broken is pretty ok. Developers will avoid the broken controls or code replacement ones.
How hard can it be to write a text editor as crappy as Notepad?