Функция _GUICtrlListView_CreateDragImage

         Описание функции


_GUICtrlListView_CreateDragImage

Создаёт перетаскиваемое изображение для указанного пункта

#include <GuiListView.au3>
_GUICtrlListView_CreateDragImage($hWnd, $iIndex)

Параметры

$hWnd Дескриптор или идентификатор элемента
$iIndex Индекс пункта

Возвращаемое значение

Возвращает массив следующего формата:
        [0] - Дескриптор списка изображений используемый для перетаскивания, если успешно, иначе 0
        [1] - X-координата левого верхнего угла изображения
        [2] - Y-координата левого верхнего угла изображения

Примечания

Вы сами ответственны за уничтожение списка изображений, когда он больше не нужен.

См. также

_GUICtrlListView_DrawDragImage

Пример

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

$Debug_LV = False ; Проверяет ClassName передаваемый в ListView функции. Установите True и используйте дескриптор от другого элемента, чтобы увидеть как это работает

Global $iMemo
_Main()

Func _Main()

    Local $GUI, $hImage, $aDrag, $hListView

    $GUI = GUICreate("Создаёт перетаскиваемое изображение", 400, 300)

    $hListView = _GUICtrlListView_Create($GUI, "", 2, 2, 394, 118)
    $iMemo = GUICtrlCreateEdit("", 2, 124, 396, 174, 0)
    GUISetState()

    ; Загружает изображения
    $hImage = _GUIImageList_Create()
    _GUIImageList_Add($hImage, _GUICtrlListView_CreateSolidBitMap($hListView, 0xFF0000, 16, 16))
    _GUIImageList_Add($hImage, _GUICtrlListView_CreateSolidBitMap($hListView, 0x00FF00, 16, 16))
    _GUIImageList_Add($hImage, _GUICtrlListView_CreateSolidBitMap($hListView, 0x0000FF, 16, 16))
    _GUICtrlListView_SetImageList($hListView, $hImage, 1)

    ; Добавляет колонки
    _GUICtrlListView_InsertColumn($hListView, 0, "Колонка 1", 100)
    _GUICtrlListView_InsertColumn($hListView, 1, "Колонка 2", 100)
    _GUICtrlListView_InsertColumn($hListView, 2, "Колонка 3", 100)

    ; Добавляет пункты
    _GUICtrlListView_AddItem($hListView, "Красный", 0)
    _GUICtrlListView_AddItem($hListView, "Зелёный", 1)
    _GUICtrlListView_AddItem($hListView, "Синий", 2)

    ; Создаёт перетаскиваемое изображение
    $aDrag = _GUICtrlListView_CreateDragImage($hListView, 0)
    _GUICtrlListView_DrawDragImage($hListView, $aDrag)

    MemoWrite("Дескриптор перетаскиваемого изображения = 0x" & Hex($aDrag[0]) & @CRLF & _
    "IsPtr = " & IsPtr($aDrag[0]) & @CRLF & _
    "IsHWnd = " & IsHWnd($aDrag[0]))

    While 1
        Switch GUIGetMsg()
            Case $GUI_EVENT_MOUSEMOVE
                _GUICtrlListView_DrawDragImage($hListView, $aDrag)
            Case $GUI_EVENT_CLOSE
                ExitLoop
        EndSwitch
    WEnd

    ; Удаляет список изображений
    _GUIImageList_Destroy($aDrag[0])

    GUIDelete()
EndFunc   ;==>_Main

; Записывает строку в элемент для заметок
Func MemoWrite($sMessage)
    GUICtrlSetData($iMemo, $sMessage & @CRLF, 1)
EndFunc   ;==>MemoWrite