Cr�e une version semi-transparente de l'image d'un �l�ment destin� � �tre utilis�e comme une image � faire glisser
#include <GuiHeader.au3>
_GUICtrlHeader_CreateDragImage ( $hWnd, $iIndex )
$hWnd | Handle du le contr�le |
$iIndex | Index de l�l�ment compt� � partir de 0. L'image affect�e � l'�l�ment sert de base � l'image transparente. |
Succ�s: | Retourne le handle d'une liste d'images qui contient la nouvelle image associ�e � son seul �l�ment. |
�chec: | Retourne 0. |
#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 ; Cr�e une 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) ; Ajoute des colonnes _GUICtrlHeader_AddItem($hHeader, "Column 1", 100) _GUICtrlHeader_AddItem($hHeader, "Column 2", 100) _GUICtrlHeader_AddItem($hHeader, "Column 3", 100) _GUICtrlHeader_AddItem($hHeader, "Column 4", 100) ; Cr�e une image � faire glisser $hImage = _GUICtrlHeader_CreateDragImage($hHeader, 1) $aSize = _GUIImageList_GetIconSize($hImage) $hDC = _WinAPI_GetDC($hGUI) MemoWrite("Image drag Handle: " & "0x" & Hex($hImage)) MemoWrite("IsPtr = " & IsPtr($hImage) & " IsHWnd = " & IsHWnd($hImage)) ; Montre une image � faire glisser � la position du curseur jusqu'� ce que l'utilisateur quitte 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 ; Ecrit une ligne dans le contr�le m�mo Func MemoWrite($sMessage) GUICtrlSetData($g_idMemo, $sMessage & @CRLF, 1) EndFunc ;==>MemoWrite