Что нового

[Элементы GUI] Как в ListBox засунуть CheckBox

dimcomp

Новичок
Сообщения
66
Репутация
0
Всем доброго времени суток. Казалось бы простая задача, внутрь ListBox установить CheckBox, но почему-то не получается(, может не там ищу?) Если есть пример, ткните носом пожалуйста :smile:
 

xXx

╚{■_■}╗
Меценат
Сообщения
248
Репутация
95
А так не устроит?
Код:
#include <GUIConstantsEx.au3>
#include <GuiListView.au3>

GUICreate('', 400, 300)
$hListView = GUICtrlCreateListView("", 2, 2, 394, 268, $LVS_NOCOLUMNHEADER)
_GUICtrlListView_SetExtendedListViewStyle($hListView, BitOR($LVS_EX_FULLROWSELECT, $LVS_EX_CHECKBOXES))
GUISetState()
_GUICtrlListView_AddColumn($hListView, '', 390)
For $i = 0 To 100
	_GUICtrlListView_AddItem($hListView, "Строка " & $i, $i)
Next
Do
Until GUIGetMsg() = $GUI_EVENT_CLOSE
GUIDelete()
 
Автор
D

dimcomp

Новичок
Сообщения
66
Репутация
0
xXx сказал(а):
А так не устроит?
Да, спасибо. А как значение чекбокса сделать отмеченым?
Код:
_GUICtrlListView_SetItemParam($hListView, 1, $GUI_CHECKED)
не работает.
Код:
GUICtrlSetState(-1, $GUI_CHECKED)
тоже( Как установить состояние чекбокса?
Код:
#include <GUIConstantsEx.au3>
#include <GuiListView.au3>

Global $x = 3
Global $Checkbox[$x]

$Form = GUICreate('Пример', 400, 300)
$hListView = GUICtrlCreateListView("Нажмите для сортировки", 20, 20, 300, 200)
_GUICtrlListView_SetExtendedListViewStyle($hListView, BitOR($LVS_EX_FULLROWSELECT, $LVS_EX_CHECKBOXES))
GUISetState()

_GUICtrlListView_AddColumn($hListView, '', 390)

    $Checkbox[0] = _GUICtrlListView_AddItem($hListView, "Строка1")
    GUICtrlSetState(-1, $GUI_CHECKED)
    $Checkbox[1] = _GUICtrlListView_AddItem($hListView, "Строка2")
    $Checkbox[2] = _GUICtrlListView_AddItem($hListView, "Строка3")

    _GUICtrlListView_SetItemParam($hListView, 1, $GUI_CHECKED)
    
$Button = GUICtrlCreateButton("Сохранить", 220, 240, 100, 25)

While 1
		$nmsg = GUIGetMsg()
		Switch $nmsg
		Case $GUI_EVENT_CLOSE
		    exit
        Case $Button
            save()
			exit
        EndSwitch
WEnd
	
func save()	
For $i = 0 To $x - 1
  IniWrite(@ScriptDir & '\newconf.ini', 'Options', 'CheckBox' & $i, GUICtrlRead($CheckBox[$i]))
Next
Endfunc
 

pvnn

Осваивающий
Сообщения
305
Репутация
32
Код:
_GUICtrlListView_SetItemChecked()
_GUICtrlListView_GetItemChecked()


Код:
#cs ----------------------------------------------------------------------------

 AutoIt Version: 3.3.12.0
 Author:         myName

 Script Function:
	Template AutoIt script.

#ce ----------------------------------------------------------------------------

#include <GUIConstantsEx.au3>
#include <GuiListView.au3>

Global $x = 3
Global $Checkbox[$x]

$Form = GUICreate('Пример', 400, 300)
$hListView = GUICtrlCreateListView("Нажмите для сортировки", 20, 20, 300, 200)
_GUICtrlListView_SetExtendedListViewStyle($hListView, BitOR($LVS_EX_FULLROWSELECT, $LVS_EX_CHECKBOXES))
GUISetState()

_GUICtrlListView_AddColumn($hListView, '', 390)

    $Checkbox[0] = _GUICtrlListView_AddItem($hListView, "Строка1")
    _GUICtrlListView_SetItemChecked($hListView,0)
    $Checkbox[1] = _GUICtrlListView_AddItem($hListView, "Строка2")
    $Checkbox[2] = _GUICtrlListView_AddItem($hListView, "Строка3")

    _GUICtrlListView_SetItemParam($hListView, 1, $GUI_CHECKED)

$Button = GUICtrlCreateButton("Сохранить", 220, 240, 100, 25)

While 1
        $nmsg = GUIGetMsg()
        Switch $nmsg
        Case $GUI_EVENT_CLOSE
            exit
        Case $Button
            save()
            exit
        EndSwitch
WEnd

func save()
For $i = 0 To $x - 1
  IniWrite(@ScriptDir & '\newconf.ini', 'Options', 'CheckBox' & $i, Number(_GUICtrlListView_GetItemChecked($hListView,$i)) )
Next
Endfunc
 
Верх