GUICtrlCreateListView Drag and Drop ?

  • Hi,

    habe grade gesehen was wenn ich bei einer Zeil ein einer GUICtrlCreateListView die linke Maustaste gedrückt halte und dann die Maus verschiebe ein kleines Plus neben der Maus erscheint. Könnte man also durch dieses verschieben einen Eintrag aus dem GUICtrlCreateListView in ein GUICtrlCreateInput einfügen lassen? Also ohne _GUICtrlListView_CopyItems sondern einfach nur durch verschieben per Maus?

    Andy hat mir ein Schnitzel gebacken aber da war ein Raupi drauf und bevor Oscar das Bugfixen konnte kam Alina und gab mir ein AspirinJunkie.

    2 Mal editiert, zuletzt von chip (23. Februar 2010 um 07:28)

  • Hallo Chip,

    natürlich ist so etwas möglich, hier einmal ein kurzes Beispiel dazu:

    Spoiler anzeigen
    [autoit]

    #include <GUIConstantsEx.au3>
    #include <GUIConstants.au3>
    #include <WindowsConstants.au3>
    #include <GuiListView.au3>
    #include <ListViewConstants.au3>
    ;#include <array.au3>

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

    $main = GUICreate("Testlistview Drag & Drop from LV to Input", 600, 400)
    $listview = GUICtrlCreateListView("Gruppe1| BlubText", 10, 10, 200, 100, BitOR($LVS_REPORT, $LVS_SHOWSELALWAYS ), BitOR($LVS_EX_FULLROWSELECT, $WS_EX_CLIENTEDGE))
    GUICtrlSetBkColor(-1, $GUI_BKCOLOR_LV_ALTERNATE) ; legt fest, dass Hintergrundfarbe wechselt
    GUICtrlSetBkColor(-1, 0xE6E6FA) ; Hintergrundfarbe 1

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

    $Input = GUICtrlCreateInput("Target", 230, 10, 200, 30)
    GUICtrlSetState($Input, $GUI_DROPACCEPTED)
    For $i = 1 To 9
    $listitem = GUICtrlCreateListViewItem("test" & $i & " |Blub " & Random(1, 9), $listview)
    GUICtrlSetBkColor(-1, 0xcccccc) ; Hintergrundfarbe 2
    Next
    GUISetState()

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

    While 1
    $msg = GUIGetMsg()
    Switch $msg
    Case $GUI_EVENT_DROPPED
    ;$aItem = _GUICtrlListView_GetItemTextArray($listview)
    ;_ArrayDisplay($aItem)
    $sItem = _GUICtrlListView_GetItemTextString($listview)
    GUICtrlSetData($Input,$sItem)
    Case $GUI_EVENT_CLOSE
    Exit
    EndSwitch
    WEnd

    [/autoit]

    hoffe das hilft dir weiter,

    Edit: Beispiel auf das wesentliche gekürzt
    mfg (Auto)Bert

    Einmal editiert, zuletzt von AutoBert (23. Februar 2010 um 07:31)