Войти

Показать полную графическую версию : [решено] TREEVIEWITEM: Как определить, включен или выключен элемент?


snoitaleR
09-09-2009, 08:38
Подскажите, пожалуйста, что нужно написать вместо знаков ???, чтобы при нажатии кнопки появилось окно, в котором написано, включен или выключен элемент E1?

GuiCreate("Пример", 400, 400)

$TV1=GuiCtrlCreateTreeView(0,0,100,200,0x00000100)
GuiCtrlCreateTreeViewItem("E1",$TV1)
GuiCtrlCreateTreeViewItem("E2",$TV1)
GuiCtrlCreateTreeViewItem("E3",$TV1)

$B1=GUICtrlCreateButton("Проверить", 100, 0, 100)

GuiSetState()

While 1
$msg = GUIGetMsg()
Select
Case $msg=-3
ExitLoop
Case $msg=$B1
???
EndSelect
WEnd

Creat0R
09-09-2009, 09:28
#include <GUIConstantsEx.au3>
#include <TreeViewConstants.au3>

GUICreate("Пример", 400, 400)

$TV1 = GUICtrlCreateTreeView(0, 0, 100, 200, $TVS_CHECKBOXES)

$E1_TVItem = GUICtrlCreateTreeViewItem("E1", $TV1)
$E2_TVItem = GUICtrlCreateTreeViewItem("E2", $TV1)
$E3_TVItem = GUICtrlCreateTreeViewItem("E3", $TV1)

$B1 = GUICtrlCreateButton("Проверить", 100, 0, 100)

GUISetState()

While 1
$msg = GUIGetMsg()
Select
Case $msg = -3
ExitLoop
Case $msg = $B1
$iIsChecked = BitAND(GUICtrlRead($E1_TVItem), $GUI_CHECKED) = $GUI_CHECKED
MsgBox(64, "Test", "E1 отмечен: " & $iIsChecked)
EndSelect
WEnd

snoitaleR
09-09-2009, 10:03
Creat0R, спасибо...
Я понял, что надо присвоить имя каждому элементу, к которому необходимо будет обращаться, и то что состояния чекбоксов хранятся как биты...
Сама конструкция проверки бита понятна, но я бы ее не составил, если бы не знал о побитном хранении состояний чекбоксов...




© OSzone.net 2001-2012