Jump to content

Recommended Posts

Posted

I have always been aware of this tool but never really gave it a try until today. I am amazed at how comprehensive this really is.

I use System Informer (previously Process Hacker) almost daily for many things. Especially checking window hierarchy, styles, etc. It does a great job of showing window hierarchy, grouped by parent windows and so on.

But this AutoIt tool here is a real gem! It covers way more styles and extended styles in comparison to System Informer. I may switch to using this Control Viewer on a regular basis now and put some work in here.

I am thankful to @pixelsearch, @argumentum and anyone else who has contributed to keeping @Yashied's program going and updating styles/exstyles and so on.

It would be good to get some dark theme and DPI going here. I see the _WinAPI_DPI UDF in there as well so it would be good if we can add that to the CV.ini config and menus to enable/disable. I will see if there is anything that I can contribute here as I get more accustomed to using this program.

Posted

if any of you have the time, make a group chat with  @WildByDesign, @pixelsearch, @ioa747 ( and me ) and attend to it. That way we can keep it in this thread and not have many independent versions floating around. If later a user want to exit the chat, that user can just leave the conversation.
This is a good way to not stagnate the tool because "the maintainer will not update it" ;) 

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

  • 3 weeks later...
Posted

If anyone prefers a Dark Theme variant of this incredible Control Viewer tool, I have applied the GUIDarkTheme UDF to the latest Control Viewer version and will share it here.

Control Viewer GUI initially had some problems with the UDF, particularly tab control related. So this actually led to numerous important fixes for the UDF. Also, it led to adding support for the tab icons/images as well.

Enjoy! 🌒

ControlViewer(source v0.2024.9.16)-Dark.zip

Posted

@pixelsearch Hello, I hope you are doing fantastic. :)

How do you go about finding missing style values to add to Control Viewer?

For example, if you run the _ChooseFont() function to bring up the Font dialog:

The 3 Edit boxes at the top which are child windows to the ComboBox show:

CLASS:Edit
0x00000200, ES_AUTOHSCROLL, ES_NOHIDESEL, WS_CHILD, WS_VISIBLE

The 3 ComboLBox windows right below are also child windows to the ComboBox and shows always because of $CBS_SIMPLE. They show:

CLASS:ComboLBox
0x00009053, WS_CHILD, WS_VISIBLE, WS_CLIPSIBLINGS, WS_VSCROLL

I'm just not sure how to figure out the missing styles. I've checked briefly on MSDN and GitHub (usually GitHub search is most helpful to me for styles), but I do not see a 0x00000200 specifically for Edit so the style must come from elsewhere.

The ComboLBox value 0x00009053, I assume, must be a combination of multiple styles. Or at least that is my guess and therefore I don't even know where to start with that one.

If you are able to show me your methods for finding missing styles, then I can fill in and update any other missing styles that I find in the future.

Posted

Hey @WildByDesign everything is fine, thanks !

1) Concerning the remaning styles 0x00009053 in class ComboLBox of _ChooseFont() function :
It seems correctly splitted with my version of Yashied's control viewer as shown in this pic :

ComboBoxsimple(childwindowComboLBox).png.f2863e7988b61a72a77c9f3320a60227.png

This is because of the change I mentioned in the current thread, here, to indicate that a ComboLBox got its styles from the ListBox styles. If I understood Comboxes correctly, the list is always displayed only for 1 type of ComboBox control, i.e. the Simple ComboBox that got the CBS_SIMPLE style :

3typesofComBoBox.png.cb36020b58fb617764d1d55828df79b0.png

For the 2 other types of ComboBox (DropDown Combo & DropDownList Combo), then the ComboLBox control is no more a child of the ComboBox control but a separate top-level window constantly recreated when you click on the icon (the down arrow) placed at the right of the 'Edit' field (which is btw an Edit field only for Simple ComboBox (1) and DropDown Combo (2) but not for DropDownList Combo (3) where you can't Edit anything, only pick)

2) Concerning the remaning 0x00000200 in class Edit of _ChooseFont() function :
They appear also for me as you can see in the following pic :

ComboBoxsimple(childwindowEdit).png.0924953e842170ba0ed729e8a2253895.png


I don't think you'll find anything for it on the Internet, except :
* on this Korean webpage , where we read this :

CBS_HASSTRINGS = ES_HASSTRINGS (Has strings)

* on this AutoIt webpage where I asked the question a few years ago.

Concerning 0x0200 missing style in the Edit control, here is a chat I had one month ago with AI (Google then GPT-5.4 nano)

My question to Google AI :
==========================
Hey Google,I read on a webpage that CBS_HASSTRINGS = ES_HASSTRINGS, meaning is Has strings . Value is 0x0200 . As I got myself a surprising 0x0200 undocumented style found as part of the edit control of a combobox, I wondered why this info of ES_HASSTRINGS = 0x0200 isn t found anywhere else, except on the webpage ?


Google AI answer :
================
The 0x0200 style you discovered in a Win32 ComboBox edit control highlights a classic quirk in Microsoft's documentation regarding CBS_HASSTRINGS and ES_HASSTRINGS:

1. Why You Only Saw It on One Webpage
-------------------------------------
The Win32 API header files (Winuser.h) share numeric constants across different control types. The value 0x0200 simply means "has strings" to the OS, regardless of where it is applied. 

    For a Combo Box, this constant is CBS_HASSTRINGS. [perso: 0x0200]
    For a List Box, it is LBS_HASSTRINGS. [perso: 0x0040]
    For an Edit Control, it was never meant to apply, which is why official Microsoft documentation does not list it under ES_HASSTRINGS styles. 

The webpage you read was likely mapping numerical constants back to human-readable names through decompilation or header inspection. It’s an undocumented overlap because Windows didn't need to create a new unique number for every single variation of "Has Strings."

2. Why You Found It on a ComboBox
---------------------------------
A ComboBox in Win32 is actually a composite control made up of two sub-windows: a list box and an edit control. When you create a ComboBox with CBS_DROPDOWN (which includes the edit field), the underlying framework copies certain styles from the ComboBox parent and passes them down to configure its internal child windows. 
The CBS_HASSTRINGS flag gets inherently forwarded to the internal edit control’s style masks, showing up as 0x0200 during runtime inspections.

3. What It Does in the Edit Control
-----------------------------------
Even though the edit control is theoretically unaware of LBS_HASSTRINGS or CBS_HASSTRINGS, it evaluates the 0x0200 bit contextually.

    In the internal edit control, 0x0200 overlaps with WS_MINIMIZEBOX. Since an edit control cannot be minimized, the OS ignores the style entirely.
    It does not change how the edit box handles text. The text-handling logic for the ComboBox's edit field relies on the parent's CBS_DROPDOWN behavior.

Because this shared value is a harmless artifact of internal window creation, Microsoft leaves it undocumented rather than cluttering official API guidelines with overlap details.


GPT-5.4 nano:
============
That Google AI exchange is **not reliable**.

- There is **no documented `ES_HASSTRINGS`** window style for the standard Win32 **EDIT** control in `Winuser.h`. The “0x0200 = ES_HASSTRINGS” claim is almost certainly a **constant-mapping mistake** from that webpage.

- In your case, the edit child’s style containing `0x0200` is best explained as a **bit that gets copied over during the ComboBox’s internal control creation** (or ends up there incidentally), and then the EDIT control simply **ignores** it because it doesn’t correspond to any meaningful `ES_*` style for EDIT.

So the takeaway: **`0x0200` is real for `CBS_HASSTRINGS` (ComboBox)**, but **seeing `0x0200` inside the ComboBox’s internal EDIT style doesn’t mean EDIT has an “ES_HASSTRINGS” feature**—it just means that bit landed in the EDIT’s `GWL_STYLE` value (even if the EDIT doesn’t treat it as a valid style).

For the record, here is a pic of the Simple ComboBox control (ComboBox class) :

ComBoBoxsimple(allofit).png.e401945a09246afc0fa3e8ce2592735e.png

After all, if ComboLBox class got a LBS_HASSTRINGS style (as seen in 1st pic above) and ComboBox class got a CBS_HASSTRINGS style (last pic above), why an Edit Class couldn't have an undocumented ES_HASSTRINGS :D

Anyway, let's forget this 0x0200 or we'll never end. Maybe GPT-5.4 nano is right and "the style is  copied over during the ComboBox’s internal control creation" (let's not forget that CBS_HASSTRINGS is also 0x0200)

Maybe we can "compare" this behavior with the $WS_VSCROLL style applied at combobox creation : it will be "copied" to the ComboLBox window (which is not a child window in all cases). If you don't indicate $WS_VSCROLL at the combobox creation, then the ComboLBox window won't have a vertical scrollbar, no matter the type of ComboBox you created.

3 hours ago, WildByDesign said:

ow do you go about finding missing style values to add to Control Viewer?

When it happens, I just search on the Internet (the .h files) in case a style is missing in AutoIt, no more no less.
Or ask myself : how is it possible that LBS_HASSTRINGS exists, CBS_HASSTRINGS exists (0x0200) and now we're facing the same undocumented value 0x0200 in the Edit part of the ComboBox ? Let's go try to find an undocumented "ES_HASSTRINGS" on the web !

Have a great evening :bye:

"I think you are searching a bug where there is no bug... don't listen to bad advice."

Posted
8 hours ago, pixelsearch said:

This is because of the change I mentioned in the current thread, here, to indicate that a ComboLBox got its styles from the ListBox styles.

That was a nice fix, thank you. It behaves perfectly for me now as well.

8 hours ago, pixelsearch said:

Concerning 0x0200 missing style in the Edit control, here is a chat I had one month ago with AI (Google then GPT-5.4 nano)

The output regarding 0x0200 that you got from AI was very helpful. It makes a lot of sense now.

I've only asked AI a single question so far. I asked it (Google Gemini) to convert a block of C++ code into AutoIt code and it did a great job. I understood some of the C++, but not all. But the greatest part for me about the AI output when it converted C++ to AutoIt was the code comments that the AI added which is what gave me the understanding of the parts of C++ that I didn't quite understand.

8 hours ago, pixelsearch said:

Let's go try to find an undocumented "ES_HASSTRINGS" on the web !

I thought for sure that I might find a few references on GitHub at least, but it returned zero matches. Some undocumented stuff on the web in general but I think that we got a decent enough understanding from your AI output for the fact that it would have been inherited from its parent window (ComboBox).

8 hours ago, pixelsearch said:

Have a great evening :bye:

You as well. Thank you. :)

  • 3 weeks later...
Posted

https://imgur.com/a/zLD4vMz

I don't know if anyone needs this. But I made a button to copy title+class for AutoIt-ready format:"[TITLE:Crow Translate;CLASS:Qt51511QWindowIcon;]". I'm really tired of manually copying title and class in Window Info Tool. You can't select all with CTRL+A. So this is how painful it is: manually select TITLE with mouse, press CTRL+C. Type in SCITE editor "[TITLE: press CTRL+V, type ; manually select CLASS with mouse, press CTRL+C, type CLASS text, press CTRL+V, type ]" and I did this for years, every damn ####ing time. Same crap for controls.
Only now I noticed tooltip in default tool  (Double-click list entries to copy to clipboard). This is still pretty bad for Window, but for controls this is actually manageable. I still need to add the quotes manually though...
Based on

CVpatched.au3 gitCVcopy.patch

  • 2 months later...
Posted

I am curious about adding TreeView Extended Styles to Control Viewer.

Here are the relevant constants for GUIStyles.inc.au3:

Global Const $Style_TreeViewExtended[10][2] = _
        [[0x0400, 'TVS_EX_DRAWIMAGEASYNC'], _
        [0x0200, 'TVS_EX_DIMMEDCHECKBOXES'], _
        [0x0100, 'TVS_EX_EXCLUSIONCHECKBOXES'], _
        [0x0080, 'TVS_EX_PARTIALCHECKBOXES'], _
        [0x0040, 'TVS_EX_FADEINOUTEXPANDOS'], _
        [0x0020, 'TVS_EX_AUTOHSCROLL'], _
        [0x0010, 'TVS_EX_RICHTOOLTIP'], _
        [0x0008, 'TVS_EX_NOINDENTSTATE'], _
        [0x0004, 'TVS_EX_DOUBLEBUFFER'], _
        [0x0002, 'TVS_EX_MULTISELECT']]

The problem is that I don't know exactly how to add the lookup to the _GetCtrlStyleString or _GetCtrlStyleString2 functions. I know that you have to do some sort of "special treatment" for the ListView extended styles. So I assume that the TreeView extended styles would also need some special treatment but I am not as familiar with this project to understand how to handle it properly.

Posted
9 hours ago, WildByDesign said:

The problem is that I don't know exactly how to add the lookup to the _GetCtrlStyleString or _GetCtrlStyleString2 functions.

Hello :)
I just scripted a few modifications to allow the use of your array $Style_TreeViewExtended . According to @MattyD in this link, there are 11 extended styles. The script changes are :

Global Const $Style_TreeViewExtended[11][2] = etc...

====================================================

Not found yet in AutoIt but it will be in next release :

Func _GUICtrlTreeView_GetExtendedStyle($hWnd)
    If IsHWnd($hWnd) Then
        Return _SendMessage($hWnd, $TVM_GETEXTENDEDSTYLE) ; $TVM_GETEXTENDEDSTYLE = 0x112D
    Else
        Return GUICtrlSendMsg($hWnd, $TVM_GETEXTENDEDSTYLE, 0, 0)
    EndIf
EndFunc   ;==> _GUICtrlTreeView_GetExtendedStyle

====================================================

1 line to suppress...

Func _SetControlInfo($hWnd)
    ...
    If GUICtrlRead($Input[16]) = "SysListView32" Then $Data2 = _GUICtrlListView_GetExtendedListViewStyle($hWnd) ; to be suppressed
    ...
EndFunc

...replace with 6 following lines

Func _SetControlInfo($hWnd)
    ...
    Switch GUICtrlRead($Input[16])
        Case "SysListView32"
            $Data2 = _GUICtrlListView_GetExtendedListViewStyle($hWnd)
        Case "SysTreeView32"
            $Data2 = _GUICtrlTreeView_GetExtendedStyle($hWnd)
    EndSwitch    
    ...
EndFunc

====================================================

Added and modified lines :    

Func _GetCtrlStyleString2
    ...    
        Case "SysTreeView32" ; keep it
            $Data = $Style_TreeView ; keep it
        Case "Ex_SysTreeView32" ; added line
            $Data = $Style_TreeViewExtended ; added line
    ...
    ; If $sClass <> "Ex_SysListView32" Then ; suppressed line
    If $sClass <> "Ex_SysListView32" And $sClass <> "Ex_SysTreeView32" Then ; added line
        ...
    EndIf
EndFunc

====================================================

To modify in the future :
To not rework plenty of lines, $iLVExStyle Variable kept its name, but it will be applied to LV & TV.
$Text = 'LVex: 0x' ... should not always display 'LV' as it may concern 'TV' too.

====================================================

I didn't test any of these changes yet, let's hope it will help you.
Good luck :bye:

"I think you are searching a bug where there is no bug... don't listen to bad advice."

Posted

Hello @pixelsearch. I hope life is treating you great. :)

Thank you for the detailed changes. It was quick and easy to implement all changes that you mentioned. I have been using TreeView extended styles ever since @MattyD released those functions and constants back in March and I am thrilled that I can see them in Control Viewer now. I am happy to confirm that your changes are working perfectly.

Posted
30 minutes ago, pixelsearch said:

To modify in the future :

I got a wake up call with that php2shell bug and had to call the AI things to come to my aid because I don't remember php and it changed since v5.x to now 8.x so, am working on that. But I believe I've got the hang of it. And there is no secret that I've always being a "copy and paste" kind of coder. Now with these LLM things, they do the copy and pasting, so I can be even lazier than before :lol:
So in a week or two I should have time for a bunch of stuff that I pinky swore that I'd do and never did :) 

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

@WildByDesign Hello :)

I'm pasting below 3 updated functions found in our CV script, so we could have exactly the same code in our respective scripts. There is a 4th function (_GUICtrlTreeView_GetExtendedStyle) but you certainly use a similar one in your UDF's

On 10/31/2026 at 12:42 AM, pixelsearch said:

To modify in the future :
To not rework plenty of lines, $iLVExStyle Variable kept its name, but it will be applied to LV & TV.
$Text = 'LVex: 0x' ... should not always display 'LV' as it may concern 'TV' too.

Done too. Here are the updated functions :

;=====================================================================
Func _GetStyleString($iStyle, $fExStyle)

    If $iStyle = 0 Then Return '' ; minor test added on march 1, 2021

    Local $Text = '', $Data = $fExStyle ? $Style_GuiExtended : $Style_Gui

    For $i = 0 To UBound($Data) - 1
        If BitAND($iStyle, $Data[$i][0]) = $Data[$i][0] Then
            $iStyle = BitAND($iStyle, BitNOT($Data[$i][0]))
            If StringLeft($Data[$i][1], 1) <> "!" Then
                $Text &= $Data[$i][1] & ', '
            Else
                ; ex. '! WS_MINIMIZEBOX ! WS_GROUP'  =>  'WS_MINIMIZEBOX, '
                $Text &= StringMid($Data[$i][1], 3, StringInStr($Data[$i][1], "!", 2, 2) -4) & ', '
            EndIf
            If $iStyle = 0 Then ExitLoop ; minor test added on march 1, 2021
        EndIf
    Next

    If $iStyle Then $Text = '0x' & Hex($iStyle, 8) & ', ' & $Text

    Return StringRegExpReplace($Text, ',\s\z', '')
EndFunc   ;==>_GetStyleString

;=====================================================================
Func _GetCtrlStyleString($iStyle, $fExStyle, $sClass, $iLVorTV_ExStyle = 0)

    If $iStyle = 0 And $iLVorTV_ExStyle = 0 Then Return '' ; minor test added on march 1, 2021

    If $sClass = "AutoIt v3 GUI" Or $sClass = "#32770" Or $sClass = "MDIClient" Then ; control = child GUI, dialog box (msgbox) etc...
        Return _GetStyleString($iStyle, 0)
    EndIf

    If StringLeft($sClass, 8) = "RichEdit" Then $sClass = "RichEdit" ; RichEdit, RichEdit20A, RichEdit20W, RichEdit50A, RichEdit50W

    Local $Text = ''

    _GetCtrlStyleString2($iStyle, $Text, $sClass, $iLVorTV_ExStyle) ; 4th param. in case $sClass = "Ex_SysListView32" or "Ex_SysTreeView32" (special treatment)

    If $sClass = "ReBarWindow32" Or $sClass = "ToolbarWindow32" Or $sClass = "msctls_statusbar32" Then
        $sClass = "Common" ; "for rebar controls, toolbar controls, and status windows" (msdn)
        _GetCtrlStyleString2($iStyle, $Text, $sClass)
    ElseIf $sClass = "RichEdit" Then
        $sClass = "Edit" ; "Richedit controls also support many edit control styles (not all)" (msdn)
        _GetCtrlStyleString2($iStyle, $Text, $sClass)
    EndIf

    Local $Data = $fExStyle ? $Style_GuiExtended : $Style_Gui

    For $i = 0 To UBound($Data) - 1
        If BitAND($iStyle, $Data[$i][0]) = $Data[$i][0] Then
            If (Not BitAND($Data[$i][0], 0xFFFF)) Or ($fExStyle) Then
                $iStyle = BitAND($iStyle, BitNOT($Data[$i][0]))
                If StringLeft($Data[$i][1], 1) <> "!" Then
                    $Text &= $Data[$i][1] & ', '
                Else
                    ; ex. '! WS_MINIMIZEBOX ! WS_GROUP'  =>  'WS_GROUP, '
                    $Text &= StringMid($Data[$i][1], StringInStr($Data[$i][1], "!", 2, 2) + 2) & ', '
                EndIf
                If $iStyle = 0 Then ExitLoop ; minor test added on march 1, 2021
            EndIf
        EndIf
    Next

    If $iStyle Then $Text = '0x' & Hex($iStyle, 8) & ', ' & $Text

    Return StringRegExpReplace($Text, ',\s\z', '')
EndFunc   ;==>_GetCtrlStyleString

;=====================================================================
Func _GetCtrlStyleString2(ByRef $iStyle, ByRef $Text, $sClass, $iLVorTV_ExStyle = 0)

    Local $Data

    Switch $sClass  ; $Input[16]
        Case "Button"
            $Data = $Style_Button
        Case "ComboBox", "ComboBoxEx32"
            $Data = $Style_Combo
        Case "Common"
            $Data = $Style_Common ; "for rebar controls, toolbar controls, and status windows (msdn)"
        Case "Edit"
            $Data = $Style_Edit
        Case "ListBox", "ComboLBox" ; added "ComboLBox" on June 20th, 2026 (the listbox part of a combobox control uses listbox styles)
            $Data = $Style_ListBox
        Case "msctls_progress32"
            $Data = $Style_Progress
        Case "msctls_statusbar32"
            $Data = $Style_StatusBar
        Case "msctls_trackbar32"
            $Data = $Style_Slider
        Case "msctls_updown32"
            $Data = $Style_UpDown
        Case "ReBarWindow32"
            $Data = $Style_Rebar
        Case "RichEdit"
            $Data = $Style_RichEdit
        Case "Scrollbar"
            $Data = $Style_Scrollbar
        Case "Static"
            $Data = $Style_Static
        Case "SysAnimate32"
            $Data = $Style_Avi
        Case "SysDateTimePick32"
            $Data = $Style_DateTime
        Case "SysHeader32"
            $Data = $Style_Header
        Case "SysListView32"
            $Data = $Style_ListView
        Case "Ex_SysListView32" ; special treatment below
            $Data = $Style_ListViewExtended
        Case "SysMonthCal32"
            $Data = $Style_MonthCal
        Case "SysPager"
            $Data = $Style_Pager
        Case "SysTabControl32", "SciTeTabCtrl"
            $Data = $Style_Tab
        Case "SysTreeView32"
            $Data = $Style_TreeView
        Case "Ex_SysTreeView32" ; special treatment below (added line Oct 31, 2026)
            $Data = $Style_TreeViewExtended ; (added line Oct 31, 2026)
        Case "ToolbarWindow32"
            $Data = $Style_Toolbar
        Case Else
            Return
    EndSwitch

    If $sClass <> "Ex_SysListView32" And $sClass <> "Ex_SysTreeView32" Then ; "Ex_SysTreeView32" added on Oct 31, 2026
        For $i = 0 To UBound($Data) - 1
            If BitAND($iStyle, $Data[$i][0]) = $Data[$i][0] Then
                $iStyle = BitAND($iStyle, BitNOT($Data[$i][0]))
                $Text = $Data[$i][1] & ', ' & $Text
                If $iStyle = 0 Then ExitLoop ; minor test added on march 1, 2021
            EndIf
        Next
    Else
        For $i = 0 To UBound($Data) - 1
            If BitAND($iLVorTV_ExStyle, $Data[$i][0]) = $Data[$i][0] Then
                $iLVorTV_ExStyle = BitAND($iLVorTV_ExStyle, BitNOT($Data[$i][0]))
                $Text = $Data[$i][1] & ', ' & $Text
                If BitAND($iStyle, $Data[$i][0]) = $Data[$i][0] Then
                    $iStyle = BitAND($iStyle, BitNOT($Data[$i][0]))
                EndIf
                If $iLVorTV_ExStyle = 0 Then ExitLoop ; minor test added on march 1, 2021
            EndIf
        Next

        If $iLVorTV_ExStyle Then ; Oct 31, 2026 (take also care of 'Ex_SysTreeView32')
            $Text = (($sClass = 'Ex_SysListView32') ? 'LVex: 0x' : 'TVex: 0x') & _
            Hex($iLVorTV_ExStyle, 8) & ', ' & $Text
        EndIf

        ; next test bc LVS_EX_FULLROWSELECT (default AutoIt LV ext style) and WS_EX_TRANSPARENT got both same value 0x20 (hard to solve in some cases)
        If BitAND($iStyle, $WS_EX_TRANSPARENT) = $WS_EX_TRANSPARENT Then
            $iStyle = BitAND($iStyle, BitNOT($WS_EX_TRANSPARENT))
        EndIf
    EndIf
EndFunc   ;==>_GetCtrlStyleString2

;=====================================================================
Func _GUICtrlTreeView_GetExtendedStyle($hWnd) ; suppress this function after it exists in AutoIt (should be next release after v3.3.18.0)
    If IsHWnd($hWnd) Then
        Return _SendMessage($hWnd, 0x112D) ; $TVM_GETEXTENDEDSTYLE = 0x112D
    Else
        Return GUICtrlSendMsg($hWnd, 0x112D, 0, 0)
    EndIf
EndFunc   ;==> _GUICtrlTreeView_GetExtendedStyle

 

In case you need it, there is also another improvement done by adding 4 GUICtrlSetTip at these specific places :

...
_SetData($Input[22], _GetCtrlStyleString($Data, 0, GUICtrlRead($Input[16]))) ; control style names
GUICtrlSetTip($Input[22], GUICtrlRead($Input[22])) ; 16 sept 2024, added this line to get a dynamic tooltip
...
_SetData($Input[24], _GetCtrlStyleString($Data, 1, "Ex_" & GUICtrlRead($Input[16]), $Data2)) ; control Ex_style names
GUICtrlSetTip($Input[24], GUICtrlRead($Input[24])) ; 16 sept 2024, added this line to get a dynamic tooltip
...
_SetData($Input[6], _GetStyleString($Data, 0)) ; window (GUI) style names
GUICtrlSetTip($Input[6], GUICtrlRead($Input[6])) ; 31 oct 2026, added this line to get a dynamic tooltip
...
_SetData($Input[8], _GetStyleString($Data, 1)) ; window (GUI) Ex_style names
GUICtrlSetTip($Input[8], GUICtrlRead($Input[8])) ; 31 oct 2026, added this line to get a dynamic tooltip
...

Have a great evening :bye:

 

"I think you are searching a bug where there is no bug... don't listen to bad advice."

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...