Icon in Spalte einfügen

  • Hallo zusammen

    ich versuche ein Icon in einem ListView in eine bestimmte Spalte 2 einzufügen. Leider komme ich nicht weiter. Er trägt das Icon immer in Spalte 1 ein.

    [autoit]

    #include <GUIConstantsEx.au3>

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

    Dim $gui,$list_view

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

    $gui = GuiCreate('',600,400)

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

    $h_list_view = GUICtrlCreateListView('Spalte 1 | Spalte 2',50,100,500,200)
    $list_view_item_1 = GUICtrlCreateListViewItem('Eintrag Zeile 1|', $h_list_view)
    GUICtrlSetImage($list_view_item_1, "shell32.dll", 22)

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

    $list_view_item_2 = GUICtrlCreateListViewItem('Eintrag Zeile 2|' , $h_list_view)

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

    GUISetState(@SW_SHOW)

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

    While 1
    $msg = GUIGetMsg()
    Select
    Case $msg = $Gui_Event_Close()
    Exit
    EndSelect
    WEnd

    [/autoit]


    Gruss
    johny

    Einmal editiert, zuletzt von johny1099 (12. Dezember 2013 um 12:39)

  • Ich habe in der Zwischenzeit einges ausprobiert, aber ich habe noch nicht das gewünschte Ergebnis erreicht.

    Ich möchte eine Listview erstellen mit 2 Spalten. In der ersten Spalte soll nur Text stehen. In der 2 Spalte soll dann nur ein entsprechendes Icon (zentriert) angezeigt werden.
    Vielleicht kann mir jemand ein Beispiel einfügen wo ich es besser nachvollziehen kann.

    [autoit]

    #include <GuiConstantsEx.au3>
    #include <GuiListView.au3>
    #include <GuiImageList.au3>

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

    Dim $exStyles = BitOR($LVS_EX_FULLROWSELECT, $LVS_EX_SUBITEMIMAGES)

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

    $hGUI = GUICreate("Image to _GUIImageList", 400, 300,300,200)

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

    $hListView = GUICtrlCreateListView("", 10, 30, 350, 200)
    _GUICtrlListView_SetExtendedListViewStyle($hListView, $exStyles)

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

    $hImage = _GUIImageList_Create(16,16,0,1)

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

    _GUIImageList_AddIcon($hImage,@SystemDir&"\shell32.dll",10)
    _GUIImageList_AddIcon($hImage,@SystemDir&"\shell32.dll",13 )
    _GUIImageList_AddIcon($hImage,@SystemDir&"\shell32.dll",24 )

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

    _GUICtrlListView_SetImageList($hListView, $hImage, 1)

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

    _GUICtrlListView_AddColumn($hListView, "Spalte 1 ", 150)
    _GUICtrlListView_AddColumn($hListView, "Spalte 2", 60,2)

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

    _GUICtrlListView_AddItem($hListView, "Zeile 1 Spalte 1")
    _GUICtrlListView_AddSubItem($hListView,0, "", 1, 1)

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

    GUISetState(@SW_SHOW)

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

    While 1
    $msg = GUIGetMsg()

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

    Select
    Case $msg = $GUI_EVENT_CLOSE()
    Exit

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

    EndSelect
    WEnd

    [/autoit]

    Gruss
    johny

    • Offizieller Beitrag

    Nicht zuviel daran arbeiten ;)

    Einfach das Standard Listview benutzen und es einfach dazu zwingen die Anzeige so zu machen wie du willst.

    Spoiler anzeigen
    [autoit]

    #include <GUIConstantsEx.au3>
    #include <GuiListView.au3>
    Dim $gui,$list_view

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

    $gui = GuiCreate('',600,400)

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

    $h_list_view = GUICtrlCreateListView('Spalte 2 | Spalte 1',50,100,500,200)
    $list_view_item_1 = GUICtrlCreateListViewItem("|Zeile1", $h_list_view)
    GUICtrlSetImage($list_view_item_1, "shell32.dll", 22)

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

    $list_view_item_2 = GUICtrlCreateListViewItem('|Zeile2' , $h_list_view)
    _GUICtrlListView_SetColumnOrder($h_list_view, "1|0")

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

    GUISetState(@SW_SHOW)

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

    While 1
    $msg = GUIGetMsg()
    Select
    Case $msg = $Gui_Event_Close()
    Exit
    EndSelect
    WEnd

    [/autoit]


    Du mußt nur die Columns umbenennen und die Anzeigereihenfolge umändern.
    Siehe da, das Icon ist in Column 2 :D