[R] GUICtrlCreateTreeView + Graphic
Posté : ven. 02 mai 2014 10:29
par Amesamana
Bonjour,
Je cherche à mettre un dégradé dans un GUICtrlCreateTreeView tout comme une GuiCreate.
Ou pourquoi pas la rendre transparente mais gérer le graphique serait mieux.
Est-ce que cela est possible ?
Merci.
Je cherche à mettre un dégradé dans un GUICtrlCreateTreeView tout comme une GuiCreate.
Ou pourquoi pas la rendre transparente mais gérer le graphique serait mieux.
Est-ce que cela est possible ?
► Afficher le texteExemple
Code : Tout sélectionner
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
#include <Array.au3>
#include <TreeViewConstants.au3>
#include <GuiListView.au3>
#include <GuiTreeView.au3>
Dim $GUIWidth = 400
Dim $GUIHeight = 400
$GUI = GUICreate("Vertical Gradient", $GUIWidth, $GUIHeight)
Global $treeview = GUICtrlCreateTreeView(100, 100, 200, 200, BitOR($TVS_HASBUTTONS, $TVS_HASLINES, $TVS_LINESATROOT, $TVS_DISABLEDRAGDROP, $TVS_SHOWSELALWAYS, $WS_EX_CLIENTEDGE))
_GUICtrlTreeView_SetBkColor($treeview, $CLR_BLACK )
_GUICtrlTreeView_SetTextColor($treeview, $CLR_RED)
_GUICtrlListView_SetTextBkColor($treeview, $CLR_BLACK )
;~ GUICtrlSetBkColor($treeview, 0x66CCCC)
GUICtrlSetFont(-1, 10, 800, 1, "Times New Roman")
GUICtrlSetState($treeview, $GUI_FOCUS)
Global $generalitem = GUICtrlCreateTreeViewItem("Actions ", $treeview)
GUICtrlSetColor(-1, 0xFFFFFF)
Global $test1 = GUICtrlCreateTreeViewItem("1", $generalitem)
Global $test2 = GUICtrlCreateTreeViewItem("2", $generalitem)
Global $test3 = GUICtrlCreateTreeViewItem("3", $generalitem)
GUICtrlSetState($generalitem, $GUI_EXPAND)
Global $generalitem2 = GUICtrlCreateTreeViewItem("Actions 2 ", $treeview)
GUICtrlSetColor(-1, 0xFFFFFF)
Global $test1_1 = GUICtrlCreateTreeViewItem("1", $generalitem2)
Global $test2_1 = GUICtrlCreateTreeViewItem("2", $generalitem2)
Global $test3_1 = GUICtrlCreateTreeViewItem("3", $generalitem2)
GUICtrlSetState($generalitem2, $GUI_EXPAND)
GUISetState(@SW_SHOW)
$Graphic = GUICtrlCreateGraphic (0,0, $GUIWidth, $GUIHeight)
GradientFill($Graphic, 0, 0, $GUIWidth, $GUIHeight, _ArrayCreate(0,0,0), _ArrayCreate(255,255,255));
GUICtrlSetGraphic($Graphic,$GUI_GR_REFRESH)
While 1
$msg = GUIGetMsg()
If $msg = $GUI_EVENT_CLOSE Then ExitLoop
WEnd
Func GradientFill($im, $x1, $y1, $width, $height, $left_color, $right_color)
$color0=($left_color[0]-$right_color[0])/$height
$color1=($left_color[1]-$right_color[1])/$height
$color2=($left_color[2]-$right_color[2])/$height
For $Y=0 to $height
$red=$left_color[0]-floor($Y*$color0)
$green=$left_color[1]-floor($Y*$color1)
$blue=$left_color[2]-floor($Y*$color2)
;Convert RGB to decimal
$col = Dec(Hex($blue,2) & Hex($green,2) & Hex($red,2))
GUICtrlSetGraphic($im,$GUI_GR_COLOR, $col)
GUICtrlSetGraphic($im,$GUI_GR_MOVE,0,$Y)
GUICtrlSetGraphic($im,$GUI_GR_LINE,$GUIWidth,$Y)
Next
EndFunc