Что нового

GUICtrlRead(): Запрос новой возможности

snoitaleR

AutoIT Гуру
Сообщения
855
Репутация
223
Как известно, функция GUICtrlRead() для объекта, созданного с помощью функции GUICtrlCreateList(), возвращает название выделенного пункта... Разширенная информация для данного объекта отсутствует...
Предлагаю добавить в качестве расширенной информации о данном объекте НОМЕР выделенного пункта... Начало отсчета (ноль или единица), думаю, не принципиально, можно запомнить...
 

CreatoR

Must AutoIt!
Команда форума
Администратор
Сообщения
8,671
Репутация
2,481
Для этого есть _GUICtrlListBox_GetSelItems:

Код:
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
#include <GUIListBox.au3>

$hGUI = GUICreate("Test Script", 300, 200)

$nList = GUICtrlCreateList("", 20, 20, 260, 130, BitOR($LBS_STANDARD, $LBS_EXTENDEDSEL))
GUICtrlSetData(-1, "Item1|Item2|Item3|Item4|Item5")
$nGetItems = GUICtrlCreateButton("Get items", 20, 160, 60, 20)

GUISetState(@SW_SHOW, $hGUI)

While 1
	Switch GUIGetMsg()
		Case $GUI_EVENT_CLOSE
			Exit
		Case $nGetItems
			$sData = ""
			$aSelected = _GUICtrlListBox_GetSelItems(GUICtrlGetHandle($nList))
			
			If $aSelected[0] = 0 Then
				ContinueLoop
			EndIf
			
			For $i = 1 To $aSelected[0]
				$sData &= $aSelected[$i] & ":" & _GUICtrlListBox_GetText($nList, $aSelected[$i]) & @LF
			Next
			
			MsgBox(64, 'GetItems', $sData, 0, $hGUI)
	EndSwitch
WEnd
 
Верх