_GUICtrlListView_Create wo steht der blaue Balken? Edit: kann man den blauen Balken auch setzen?

  • Hallo
    Was muss ich im unteren Beispiel in der Funktion "gui_schliessen()" eintragen damit mir beim schliessen angezeit wird auf welche Zeile der Cursor (also der blaue Balken) in der Liste steht?
    Hatte das schon mit _GUICtrlListView_GetItemSelected probiert. Das klappt aber nicht.

    Spoiler anzeigen
    [autoit]

    #include <GuiConstantsEx.au3>
    #include <GuiListView.au3>
    Opt("GUIOnEventMode", 1)
    Opt('MustDeclareVars', 1)
    Global $hListView
    Example_External()

    [/autoit] [autoit][/autoit] [autoit]

    Func Example_External()
    Local $GUI, $hListView

    $GUI = GUICreate("(External) ListView Get Checked State", 400, 300)
    GUISetOnEvent($GUI_EVENT_CLOSE, "gui_schliessen")
    $hListView = _GUICtrlListView_Create ($GUI, "", 2, 2, 394, 268)
    _GUICtrlListView_SetExtendedListViewStyle ($hListView, BitOR($LVS_EX_FULLROWSELECT, $LVS_EX_CHECKBOXES))
    GUISetState()

    ; Add columns
    _GUICtrlListView_AddColumn ($hListView, "Column 1", 100)
    _GUICtrlListView_AddColumn ($hListView, "Column 2", 100)
    _GUICtrlListView_AddColumn ($hListView, "Column 3", 100)

    [/autoit] [autoit][/autoit] [autoit]

    ; Add items
    _GUICtrlListView_AddItem ($hListView, "Row 1: Col 1", 0)
    _GUICtrlListView_AddSubItem ($hListView, 0, "Row 1: Col 2", 1)
    _GUICtrlListView_AddSubItem ($hListView, 0, "Row 1: Col 3", 2)
    _GUICtrlListView_AddItem ($hListView, "Row 2: Col 1", 1)
    _GUICtrlListView_AddSubItem ($hListView, 1, "Row 2: Col 2", 1)
    _GUICtrlListView_AddItem ($hListView, "Row 3: Col 1", 2)

    [/autoit] [autoit][/autoit] [autoit]

    ; Check item 2
    _GUICtrlListView_SetItemChecked ($hListView, 1)
    _GUICtrlListView_SetItemChecked ($hListView, 0)
    _GuiCtrlListView_SetItemFocused ($hListView, 1)
    _GUICtrlListView_SetItemSelected ($hListView, 1)

    [/autoit] [autoit][/autoit] [autoit]

    While 1
    Sleep(100)
    WEnd

    [/autoit] [autoit][/autoit] [autoit]

    EndFunc ;==>Example_External
    func gui_schliessen()

    EndFunc

    [/autoit]

    Gruß Autoirrer

    • Offizieller Beitrag

    Hallo

    Hab dir mal eben schnell was gebaut, villiecht hilft dir das ja weiter:

    Spoiler anzeigen
    [autoit]

    #include <GuiConstantsEx.au3>
    #include <GuiListView.au3>
    Opt("GUIOnEventMode", 1)
    Opt('MustDeclareVars', 1)
    Global $hListView
    Example_External()

    [/autoit] [autoit][/autoit] [autoit]

    Func Example_External()
    Local $GUI

    $GUI = GUICreate("(External) ListView Get Checked State", 400, 300)
    GUISetOnEvent($GUI_EVENT_CLOSE, "gui_schliessen")
    $hListView = _GUICtrlListView_Create ($GUI, "", 2, 2, 394, 268)
    _GUICtrlListView_SetExtendedListViewStyle ($hListView, BitOR($LVS_EX_FULLROWSELECT, $LVS_EX_CHECKBOXES))
    GUISetState()
    ; Add columns
    _GUICtrlListView_AddColumn ($hListView, "Column 1", 100)
    _GUICtrlListView_AddColumn ($hListView, "Column 2", 100)
    _GUICtrlListView_AddColumn ($hListView, "Column 3", 100)

    [/autoit] [autoit][/autoit] [autoit]

    ; Add items
    _GUICtrlListView_AddItem ($hListView, "Row 1: Col 1", 0)
    _GUICtrlListView_AddSubItem ($hListView, 0, "Row 1: Col 2", 1)
    _GUICtrlListView_AddSubItem ($hListView, 0, "Row 1: Col 3", 2)
    _GUICtrlListView_AddItem ($hListView, "Row 2: Col 1", 1)
    _GUICtrlListView_AddSubItem ($hListView, 1, "Row 2: Col 2", 1)
    _GUICtrlListView_AddItem ($hListView, "Row 3: Col 1", 2)

    [/autoit] [autoit][/autoit] [autoit]

    ; Check item 2
    _GUICtrlListView_SetItemChecked ($hListView, 1)
    _GUICtrlListView_SetItemChecked ($hListView, 0)
    _GuiCtrlListView_SetItemFocused ($hListView, 1)
    _GUICtrlListView_SetItemSelected ($hListView, 1)

    [/autoit] [autoit][/autoit] [autoit]

    While 1
    Sleep(100)
    WEnd

    [/autoit] [autoit][/autoit] [autoit]

    EndFunc ;==>Example_External
    func gui_schliessen()
    Local $item = _GuiCtrlListView_GetFocusedItem($hListView)
    MsgBox(0,"Aktiviert: Item"&$item,_GUICtrlListView_GetItemTextString($hListView,$item))
    EndFunc

    [/autoit] [autoit][/autoit] [autoit]

    ;by GtaSpider
    Func _GuiCtrlListView_GetFocusedItem($hWnd)
    For $i = 0 To _GUICtrlListView_GetItemCount ($hWnd)-1
    If _GUICtrlListView_GetItemState($hWnd,$i,$LVIS_FOCUSED) Then Return $i
    Next
    EndFunc

    [/autoit]

    Mfg Spider

  • Also die Lösung von GTASpider funktioniert schon einwandfrei.
    Aber man ist ja nie zufrieden mit dem was man schon hat.

    Jetzt bekommt man das hin das man in der

    [autoit]

    func gui_schliessen()

    [/autoit]


    die Zeile herausfindet wo der blaue Balken steht Kann ich aber auch den blauen Balken auf eine andere Zeile setzen (z.B. auf die nächste Zeile?)
    Gruß Autoirrer