Code : Tout sélectionner
#include <File.au3>
#include <GDIPlus.au3>
#include <GIFAnimation.au3>
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
#include <WinAPI.au3>
#include <SendMessage.au3>
Global $DisplayImage
Const $SC_DRAGMOVE1 = 0xF012
#Region ### START Koda GUI section ### Form=
Global $ViewPic = GUICreate("Form1", 50, 50, 192, 124, $WS_POPUP, $WS_EX_ACCEPTFILES)
GUICtrlCreateGraphic(0, 0, 50, 50)
GUICtrlSetState(-1, $GUI_DROPACCEPTED)
GUICtrlSetBkColor(-1, 0x0A000)
GUICtrlSetColor(-1, 0)
$pos = WinGetPos($ViewPic)
$posX = $pos[0] + $pos[2] + 10
$posY = $pos[1]
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###
While 1
	$nMsg = GUIGetMsg()
	Switch $nMsg
		Case $GUI_EVENT_PRIMARYDOWN
			_SendMessage($ViewPic, $WM_SYSCOMMAND, $SC_DRAGMOVE1, 0)
		Case $GUI_EVENT_CLOSE
			Exit
		Case $GUI_EVENT_DROPPED
			$FichierImage = @GUI_DragFile
			_GDIPlus_Startup()
			$tImg = _GDIPlus_ImageLoadFromFile($FichierImage)
			$Hauteur = _GDIPlus_ImageGetHeight($tImg)
			$Largeur = _GDIPlus_ImageGetWidth($tImg)
			_GDIPlus_ImageDispose($tImg)
			_GDIPlus_Shutdown()
			If $Largeur > $Hauteur And $Largeur > 640 Then
				$Largeur = 640
				$Hauteur = 480
			ElseIf $Largeur < $Hauteur And $Hauteur > 640 Then
				$Largeur = 480
				$Hauteur = 640
			EndIf
			_PicGui($FichierImage, $Hauteur, $Largeur, $posX, $posY)
	EndSwitch
WEnd
Func _PicGui($FichierImage, $Hauteur, $Largeur, $posX, $posY)
	Const $SC_DRAGMOVE2 = 0xF012
	Local $sDrive, $sDir, $sFileName, $sExtension
	_PathSplit(@ScriptFullPath, $sDrive, $sDir, $sFileName, $sExtension)
	Global $PicGui = GUICreate($sFileName & $sExtension, $Largeur, $Hauteur, 010, 50, BitOR($WS_POPUPWINDOW, $WS_THICKFRAME), $WS_EX_LAYERED)
	$DisplayImage = _GUICtrlCreateGIF($FichierImage, "", 0, 0, $Largeur, $Hauteur)
	GUICtrlSetResizing($DisplayImage, $GUI_DOCKBORDERS)
	GUISetBkColor(0xABCDEF, $PicGui)
	_WinAPI_SetLayeredWindowAttributes($PicGui, 0xABCDEF, 250)
	GUISetState(@SW_SHOW)
	While 1
		$nMsg = GUIGetMsg()
		Switch $nMsg
			Case $GUI_EVENT_PRIMARYDOWN
				_SendMessage($PicGui, $WM_SYSCOMMAND, $SC_DRAGMOVE2, 0)
			Case $GUI_EVENT_CLOSE
				GUIDelete($PicGui)
				ExitLoop
		EndSwitch
	WEnd
EndFunc   ;==>_PicGui