Funktionreferenz


_GUICtrlHeader_CreateDragImage

Beschreibung anzeigen in

Erstellt eine halbtransparente Version eines Itembildes zur Verwendung als ziehendes Bild

#include <GuiHeader.au3>
_GUICtrlHeader_CreateDragImage ( $hWnd, $iIndex )

Parameter

$hWnd Handle des Controls
$iIndex 0-basierender Itemindex. Das Bild, das mit dem Item verknüpft ist, ist die Basis für das transparente Bild.

Rückgabewert

Erfolg: Handle zu einer Imagelist, welches das neue Bild als einziges Item enthält.
Fehler: 0

Bemerkungen

- - - - - - - - Erklärung der Controls - - - - - - - -

Verwandte Funktionen

_GUICtrlHeader_GetImageList

Beispiel

#include <GUIConstantsEx.au3>
#include <GuiHeader.au3>
#include <GuiImageList.au3>
#include <WinAPIGdi.au3>
#include <WinAPIGdiDC.au3>
#include <WinAPIMisc.au3>
#include <WinAPISysWin.au3>

Global $g_idMemo
Example()

Func Example()
    Local $hGui, $hHeader, $hImage, $iMsg, $aSize, $tPos, $tRECT, $hDC

    ; Erstellt eine GUI
    $hGui = GUICreate("Header", 400, 300)
    $hHeader = _GUICtrlHeader_Create($hGui)
    _GUICtrlHeader_SetUnicodeFormat($hHeader, True)
    $g_idMemo = GUICtrlCreateEdit("", 2, 32, 396, 266, 0)
    GUISetState(@SW_SHOW)

    ; Fügt die Spalten hinzu
    _GUICtrlHeader_AddItem($hHeader, "Spalte 0", 100)
    _GUICtrlHeader_AddItem($hHeader, "Spalte 1", 100)
    _GUICtrlHeader_AddItem($hHeader, "Spalte 2", 100)
    _GUICtrlHeader_AddItem($hHeader, "Spalte 3", 100)

    ; Erstellt eine halbtransparente Version eines Itembildes zur Verwendung als ziehendes Bild
    $hImage = _GUICtrlHeader_CreateDragImage($hHeader, 1)
    $aSize = _GUIImageList_GetIconSize($hImage)
    $hDC = _WinAPI_GetDC($hGui)

    MemoWrite("Bild drag Handle: " & "0x" & Hex($hImage))
    MemoWrite("IsPtr  = " & IsPtr($hImage) & " IsHWnd  = " & IsHWnd($hImage))

    ; Erstellt eine halbtransparente Version eines Itembildes zur Verwendung als ziehendes Bild an der aktueller Cursorposition bis die GUI geschlossen wird
    Do
        $iMsg = GUIGetMsg()
        If $iMsg = $GUI_EVENT_MOUSEMOVE Then
            If $tPos <> 0 Then
                $tRECT = DllStructCreate($tagRECT)
                DllStructSetData($tRECT, "Left", DllStructGetData($tPos, "X"))
                DllStructSetData($tRECT, "Top", DllStructGetData($tPos, "Y"))
                DllStructSetData($tRECT, "Right", DllStructGetData($tPos, "X") + $aSize[0])
                DllStructSetData($tRECT, "Bottom", DllStructGetData($tPos, "Y") + $aSize[1])
                _WinAPI_InvalidateRect($hGui, $tRECT)
            EndIf
            $tRECT = _WinAPI_GetClientRect($hGui)
            $tPos = _WinAPI_GetMousePos(True, $hGui)
            If _WinAPI_PtInRect($tRECT, $tPos) Then
                _GUIImageList_Draw($hImage, 0, $hDC, DllStructGetData($tPos, "X"), DllStructGetData($tPos, "Y"))
            EndIf
        EndIf
    Until $iMsg = $GUI_EVENT_CLOSE
EndFunc   ;==>Example

; Gibt eine Zeile im Memo-Fenster aus
Func MemoWrite($sMessage)
    GUICtrlSetData($g_idMemo, $sMessage & @CRLF, 1)
EndFunc   ;==>MemoWrite