;Coded by UEZ 2009.12.11
#include <GDIplus.au3>
#include <WindowsConstants.au3>
Opt("GUIOnEventMode", 1)

Global $width = @DesktopWidth
Global $height = @DesktopHeight
_GDIPlus_Startup()
Global $load_img1 = _GDIPlus_BitmapCreateFromFile(@ScriptDir & "\background_0.png")
Global $img1_x = _GDIPlus_ImageGetWidth($load_img1)
Global $img1_y = _GDIPlus_ImageGetHeight($load_img1)
Global $load_img2 = _GDIPlus_BitmapCreateFromFile(@ScriptDir & "\background_1.png")
Global $img2_x = _GDIPlus_ImageGetWidth($load_img2)
Global $img2_y = _GDIPlus_ImageGetHeight($load_img2)

Global $hwnd = GUICreate("Notizzettel", $width, $height, -1, -1, 0, BitOR($WS_EX_LAYERED, $WS_EX_TOPMOST))

$graphics = _GDIPlus_GraphicsCreateFromHWND($hwnd)
$bitmap = _GDIPlus_BitmapCreateFromGraphics($width, $height, $graphics)
$backbuffer = _GDIPlus_ImageGetGraphicsContext($bitmap)
;~ _GDIPlus_GraphicsSetSmoothingMode($backbuffer, 4)

$ScreenDc = _WinAPI_GetDC($hWnd)
$dc = _WinAPI_CreateCompatibleDC($ScreenDc)

; _WinAPI_UpdateLayeredWindow parameters
$tSize = DllStructCreate($tagSIZE)
$pSize = DllStructGetPtr($tSize)
DllStructSetData($tSize, "X", $width)
DllStructSetData($tSize, "Y", $height)
$tSource = DllStructCreate($tagPOINT)
$pSource = DllStructGetPtr($tSource)
$tBlend = DllStructCreate($tagBLENDFUNCTION)
$pBlend = DllStructGetPtr($tBlend)
DllStructSetData($tBlend, "Alpha", 255)
DllStructSetData($tBlend, "Format", 1)
$tPoint = DllStructCreate($tagPOINT)
$pPoint = DllStructGetPtr($tPoint)
DllStructSetData($tPoint, "X", 0)
DllStructSetData($tPoint, "Y", 0)

GUISetOnEvent(-3, "_Exit")
GUISetState()

_GDIPlus_GraphicsDrawImage($backbuffer, $load_img1, 0, 0) ;draw background
_GDIPlus_GraphicsDrawImage($backbuffer, $load_img2, $img2_x, 0) ;draw foreground

While Sleep(30)

	$gdibitmap = _GDIPlus_BitmapCreateHBITMAPFromBitmap($bitmap)
    _WinAPI_SelectObject($dc, $gdibitmap)
    _WinAPI_UpdateLayeredWindow($hWnd, $ScreenDc, 0, $pSize, $dc, $pSource, 0, $pBlend, 2)
WEnd

Func _Exit()
	_WinAPI_DeleteDC($dc)
    _WinAPI_ReleaseDC($hWnd, $ScreenDc)
	_GDIPlus_GraphicsDispose($backbuffer)
	_GDIPlus_BitmapDispose($bitmap)
	_GDIPlus_GraphicsDispose($graphics)
	_GDIPlus_Shutdown()
	WinClose($hwnd)
	Exit
EndFunc

