Jump to content

Recommended Posts

Posted
On 5/27/2026 at 12:51 PM, argumentum said:

24H2 is worse, with the GUICtrlCreateCheckbox() not changing the text color.

Can you please share the build and revision for the system(s) that still show black as the text color for a checkbox control?

ConsoleWrite("OSBuild with Revision: " & _GetOSBuild() & @CRLF)
Func _GetOSBuild()
    Local $__DM_g_iRevision = RegRead("HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion", "UBR")
    Return @OSBuild & "." & $__DM_g_iRevision
EndFunc

I need to get an idea of which revision Microsoft added the TEXTCOLOR value to their aero.msstyles theme file. I know for sure that as long as __DM_DarkThemeAvailability() indicates support for DarkMode_DarkTheme, then we have no issues with Checkbox, Radio, or Group. But if it is not available, we use DarkMode_Explorer which had checkbox support but MS neglected to add TEXTCOLOR value. Sometime around 25H2, they finally added the value.

MS still has not added TEXTCOLOR value for Radio controls in DarkMode_Explorer, so we would still have to subclass that on affected OS builds. At the moment, we remove the theme from Radio controls on affected builds. But as soon as the subclass is complete, we will have beautiful radio controls.

For anyone that is using Windows 11 24H2 or earlier Win11 builds that show black text for the checkbox control, I am working on a subclass for Checkbox and Radio controls over in this help thread to fix those controls on the OS builds that MS had neglected.

Posted

GUIDarkTheme 2.9.0

  • Added custom dark theme support for SysLink controls
  • Added custom dark theme support for Progress controls
  • Added internal function __DM_GetThemeDetails() for debugging issues
  • Fixed issue with checkbox/radio buttons showing black text on earlier Windows 11 builds
    • Issue affected Windows 11 21H2 to 24H2 (MS fixed it halfway through 24H2/25H2 development)

Latest download available in the first post of the topic. :)

Posted

to be or not to be 🤔

..if you hide it after _GUIDarkTheme_ApplyDark() it will hide it but, if is before, it does not.
Hence a check on the visibility of the control is needed for when applying the colors  🤔

For now maybe

...
    _GUIDarkTheme_ApplyDark($Form1)
    GUICtrlSetState($idProgressError, $GUI_HIDE)
    GUISetState(@SW_SHOW)
...

until he thinkers with it.

Thanks for being a good beta tester @xuankhanh1982 :) 

This is teaser:

Spoiler

image.png

 of what he's putting together :) 

Follow the link to my code contribution ( and other things too ).
FAQ - Please Read Before Posting  image.gif.922e3a93535f431de08b31ee669cc446.gif
autoit_scripter_blue_userbar.png

Posted
1 hour ago, argumentum said:

to be or not to be 🤔

..if you hide it after _GUIDarkTheme_ApplyDark() it will hide it but, if is before, it does not.
Hence a check on the visibility of the control is needed for when applying the colors  🤔

For now maybe

...
    _GUIDarkTheme_ApplyDark($Form1)
    GUICtrlSetState($idProgressError, $GUI_HIDE)
    GUISetState(@SW_SHOW)
...

until he thinkers with it.

Thanks for being a good beta tester @xuankhanh1982 :) 

This is teaser:

  Reveal hidden contents

image.png

 of what he's putting together :) 

If you say so, it will be very inconvenient. Version 2.8.1 doesn't have this error.

I will try again using your method. Thank you for your feedback.

Posted

GUIDarkTheme 3.0.0

  • Added new Demo GUI - courtesy of @argumentum
  • Modern looking groupbox, checkbox, and radio buttons for pre-25H2 OS
    • Those controls notoriously had black text
    • Checkbox and radio button subclassing by WildByDesign
    • Groupbox subclassing by @argumentum
  • Improved toolbar button border color
  • Overall theme color consistency improvements for dark and light themes
  • Fixed issue with hidden progress control showing on startup

Latest download available in the first post of the topic. :)

 

Demo.au3 is the new, modern GUI sample with more controls and a larger size which makes more sense for modern computers. It really put GUIDarkTheme UDF to the test. I still have to add dark mode for the HotKey (msctls_hotkey32) control and the IP Address (SysIPAddress32) control. This release was a significant amount of effort and would not have been possible without @argumentum's help.

Posted

GUIDarkTheme 3.1.0

  • Added dark mode support for IP Address (SysIPAddress32) control
    • Added __GUIDarkTheme_IPAddrProc() internal subclass procedure function
    • Thanks to @argumentum for creating __GUIDarkTheme_IPAddrProc()
  • Added dark mode support for Hot Key (msctls_hotkey32) control
    • Added __GUIDarkTheme_HotkeyProc() internal subclass procedure function
    • Thanks to @argumentum for creating __GUIDarkTheme_HotkeyProc()
  • Improved font used by SysLink control

Latest download available in the first post of the topic. :)

Posted (edited)
On 4/25/2026 at 1:54 AM, bladem2003 said:

While we're at it...

When creating a child GUI, a white line will appear in the menu.

 

#include "GuiCtrls_HiDpi.au3"
#include "GUIDarkTheme.au3"


$hGui = GUICreate("", 500, 300, -1, -1)
GUISetState(@SW_SHOW, $hGui)

Local $idMenuFile = GUICtrlCreateMenu("File  ")
GUICtrlCreateMenuItem("Open", $idMenuFile)
GUICtrlCreateMenuItem("", $idMenuFile)
GUICtrlCreateMenuItem("Exit", $idMenuFile)

_GUIDarkTheme_ApplyDark($hGui)



$hGuiChild = GUICreate("Child", 200, 100, -1, -1, -1, -1, $hGui)

_GUIDarkTheme_ApplyDark($hGuiChild)

GUISetState(@SW_SHOW, $hGuiChild)

While 1
    Sleep(10)
    $msg = GUIGetMsg()
    If $msg = $GUI_EVENT_CLOSE Then Exit
WEnd

 

Screenshot_19.png

 

Hi @WildByDesign

 

I’m returning to the issue with the white menu. If you create a child GUI and don't activate it, or if you hide it, the menu remains white.

Sometimes, a white line also appears when showing or hiding, add runtime, the child GUI.

However, if you click on the child GUI to activate it, the white line disappears. 

 

Screenshot_31.png

 

#include "GUIDarkTheme.au3"


$hGui = GUICreate("", 500, 300, -1, -1)
GUISetState(@SW_SHOW, $hGui)

Local $idMenuFile = GUICtrlCreateMenu("File  ")
GUICtrlCreateMenuItem("Open", $idMenuFile)
GUICtrlCreateMenuItem("", $idMenuFile)
GUICtrlCreateMenuItem("Exit", $idMenuFile)

_GUIDarkTheme_ApplyDark($hGui)


$hGuiChild = GUICreate("Child", 200, 100, -1, -1, -1, -1, $hGui)
_GUIDarkTheme_ApplyDark($hGuiChild)
GUISetBkColor(0xff0000)
;GUISetState(@SW_HIDE, $hGuiChild)
GUISetState(@SW_SHOWNA, $hGuiChild)

While 1
    Sleep(10)
    $msg = GUIGetMsg()
    If $msg = $GUI_EVENT_CLOSE Then Exit
WEnd

 

Edited by bladem2003
Posted

..I was doing other things 😅

#Region ; *** Dynamically added Include files ***
#include <GUIConstantsEx.au3>                                ; added:06/06/26 13:52:53
#EndRegion ; *** Dynamically added Include files ***
#include "GUIDarkTheme.au3"

$hGui = GUICreate("", 500, 300, -1, -1)

Local $idMenuFile = GUICtrlCreateMenu("File  ")
GUICtrlCreateMenuItem("Open", $idMenuFile)
GUICtrlCreateMenuItem("", $idMenuFile)
GUICtrlCreateMenuItem("Exit", $idMenuFile)

_GUIDarkTheme_ApplyDark($hGui)

GUISetState(@SW_SHOW, $hGui)

$hGuiChild = GUICreate("Child", 200, 100, -1, -1, -1, -1, $hGui)
_GUIDarkTheme_ApplyDark($hGuiChild)
GUISetBkColor(0xff0000)
;GUISetState(@SW_HIDE, $hGuiChild)
GUISetState(@SW_SHOWNA, $hGuiChild)

While 1
;~     Sleep(10) ; not needed nor recomended
    $msg = GUIGetMsg()
    If $msg = $GUI_EVENT_CLOSE Then
        GUIDelete($hGuiChild) ; to avoid "menu flash white" on close
        GUIDelete($hGui)
        Exit
    EndIf
WEnd

..this is a better example on how to go about your code

Follow the link to my code contribution ( and other things too ).
FAQ - Please Read Before Posting  image.gif.922e3a93535f431de08b31ee669cc446.gif
autoit_scripter_blue_userbar.png

Posted

Yes, Argumentum's solution helped me. Thanks, @argumentum.

I do have one issue, though, which I can't reproduce.

Sometimes, a white line appears when showing or hiding, add runtime, the child GUI.

But as I said, I can't reproduce it, so until I have something concrete, there isn't really anything to be done.

Posted
10 minutes ago, bladem2003 said:

Sometimes, a white line appears when showing or hiding, add runtime, the child GUI.

Do you mean that the white line appears and stays white? Or is it a quick white line flicker?

Posted (edited)

The white line remains until I activate the child GUI or click on it with the mouse.

This usually happens when the child GUI is shown with @SW_SHOWNA.

Edited by bladem2003

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...