Что нового

[Элементы GUI] Отловить текст ListBoxItem'a

Aka_Nike

Новичок
Сообщения
7
Репутация
0
Всем привет!
Как отловить текст при нажатии на ListBoxItem'a??
 

Zaramot

I ♥ AutoIt
Сообщения
1,160
Репутация
660
Re: [Элементы GUI] Отловить текст ListBoxItem\'a

Как отловить текст при нажатии на ListBoxItem'a??
Код:
#include <GUIConstantsEx.au3>

$gui = GUICreate("My GUI list", 320, 320)
$mylist = GUICtrlCreateList("buttons that have been clicked", 10, 10, 300,300)
GUICtrlSetLimit(-1, 200)
GUICtrlSetData(-1, 'to limit horizontal scrolling')
GUICtrlSetData(-1, 'will create a dialog box that when displayed is centered')
GUISetState()

While 1
	$msg = GUIGetMsg()
	Switch $msg
		Case -3
			Exit
		Case $mylist
			$gettext = GUICtrlRead($mylist)
			MsgBox(64, '', $gettext)
	EndSwitch
WEnd



Добавлено:
Сообщение автоматически объединено:

Aka_Nike, отметь тему как "Решено".
 
Автор
A

Aka_Nike

Новичок
Сообщения
7
Репутация
0
Спсибо, но мне нужно не List, а ListBox!)
А этот пример, с ListBox'oм не катит((
 

AZJIO

Меценат
Меценат
Сообщения
2,761
Репутация
1,152
Покажи пример, чтоб знать о чём речь. Как я понимаю List это и есть ListBox.
 
Автор
A

Aka_Nike

Новичок
Сообщения
7
Репутация
0
Код:
#include <GUIConstants.au3>

Global $list, $bots
GUICreate("GUI",300,300)
$list = GUICtrlCreateListView( "Name", 10, 10, 200, 100 )
$bots = GUICtrlCreateListViewItem( 'New', $list)
$bots = GUICtrlCreateListViewItem( 'New1', $list)
$bots = GUICtrlCreateListViewItem( 'New2', $list)
$box = GUICtrlCreateInput ( "", 10, 145, 200,20)

GUISetState()

While 1
	$msg = GUIGetMsg()
	Select
	Case $msg = $GUI_EVENT_CLOSE
		ExitLoop
	EndSelect
WEnd
 

madmasles

Модератор
Глобальный модератор
Сообщения
7,790
Репутация
2,320
Aka_Nike,
И где здесь ListBox?
 
Автор
A

Aka_Nike

Новичок
Сообщения
7
Репутация
0
Оййййй, сори, я просто на C#'пе программирую ещё.
ListView)
 

AZJIO

Меценат
Меценат
Сообщения
2,761
Репутация
1,152
Aka_Nike

Код:
#include <GUIConstants.au3>
#include <GuiListView.au3>
#include <WindowsConstants.au3>

Global $list, $bots
GUICreate("GUI",300,300)
$list = GUICtrlCreateListView( "Name", 10, 10, 200, 100 )
$bots = GUICtrlCreateListViewItem( 'New', $list)
$bots = GUICtrlCreateListViewItem( 'New1', $list)
$bots = GUICtrlCreateListViewItem( 'New2', $list)
$box = GUICtrlCreateInput ( "", 10, 145, 200,20)

GUISetState()
GUIRegisterMsg(0x004E, 'WM_NOTIFY')

While 1
    $msg = GUIGetMsg()
    Select
    Case $msg = $GUI_EVENT_CLOSE
        Exit
    EndSelect
WEnd
 
Func WM_NOTIFY($hWnd, $iMsg, $iwParam, $ilParam)
    Local $hWndFrom, $iCode, $tNMHDR, $tInfo
    If Not IsHWnd($list) Then $list = GUICtrlGetHandle($list)

    $tNMHDR = DllStructCreate($tagNMHDR, $ilParam)
    $hWndFrom = HWnd(DllStructGetData($tNMHDR, 'hWndFrom'))
    $iCode = DllStructGetData($tNMHDR, 'Code')
    Switch $hWndFrom
        Case $list
            Switch $iCode
                Case $NM_CLICK
                    $tInfo = DllStructCreate($tagNMITEMACTIVATE, $ilParam)
                    $iItem = DllStructGetData($tInfo, 'Index')
					; $iItem=_GUICtrlListView_GetSelectedIndices($list)
					$ItemText = _GUICtrlListView_GetItemText($list, $iItem)
					GUICtrlSetData($box, $ItemText)
            EndSwitch
    EndSwitch
    Return $GUI_RUNDEFMSG
EndFunc
 

madmasles

Модератор
Глобальный модератор
Сообщения
7,790
Репутация
2,320
AZJIO,
Я знаю, что Вы не любите включать дополнительные библиотеки, но здесь Вы включаете WindowsConstants.au3 и все равно пишите GUIRegisterMsg(0x004E, 'WM_NOTIFY'). Почему бы не написать GUIRegisterMsg($WM_NOTIFY, 'WM_NOTIFY')? ;D
 

AZJIO

Меценат
Меценат
Сообщения
2,761
Репутация
1,152
madmasles
Всвязи с обфускацией я стал любить дополнительные библиотеки, хотя не до конца, так как каждый 4-ый скрипт приводит к ошибке обфускации. Так что тут целый справочник в коде, номер и его значение. А вообще я просто не парюсь с такой педантичностью. И ещё я прочёл философию питона - "При этом практичность важнее безупречности". ;D
 
Верх