- Offizieller Beitrag
Ich steh gerade auf dem Schlauch. Eigentlich sollte der folgende Code beim Treeview umschalten zwischen Ansicht mit und ohne Checkbox-Style.
Aber das Treeview "friert" ein statt den Style zu ändern. Wo liegt der Hase im Pfeffer?
AutoIt
#include <WinAPI.au3>
#include <TreeViewConstants.au3>
Global $iStyle = BitOR($TVS_EDITLABELS, $TVS_HASBUTTONS, $TVS_HASLINES, $TVS_LINESATROOT, $TVS_DISABLEDRAGDROP, $TVS_SHOWSELALWAYS)
Global $iStyleEx = BitOR($WS_EX_COMPOSITED, $WS_EX_CLIENTEDGE)
Global $fSwapped = False
$hGui = GUICreate('')
$cTreeview = GUICtrlCreateTreeView(10, 10, 200, 200, $iStyle, $iStyleEx)
$hTreeview = GUICtrlGetHandle($cTreeview)
$cSwap = GUICtrlCreateButton('SwapStyle', 10, 230, 100, 20)
GUISetState()
For $i = 1 To 20
GUICtrlCreateTreeViewItem('Item ' & $i, $cTreeview)
Next
While 1
Switch GUIGetMsg()
Case -3
Exit
Case $cSwap
If Not $fSwapped Then
$iStyle = BitOR($iStyle, $TVS_CHECKBOXES)
Else
$iStyle = BitXOR($iStyle, $TVS_CHECKBOXES)
EndIf
_WinAPI_SetWindowLong($hTreeview, $GWL_STYLE, $iStyle)
_WinAPI_RedrawWindow($hTreeview)
$fSwapped = Not $fSwapped
EndSwitch
WEnd
Alles anzeigen