Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <GDIPlus.au3>
- #Include <WinAPI.au3>
- _GDIPlus_Startup()
- Global Const $SC_DRAGMOVE = 0xF012
- Func _ImageGUI_Create($Title, $GUIImage, $ExitImage, $MinImage, $X, $Y) ; Erstelle ImageGUI
- ; Lade Images für GUI
- ;_WinAPI_SetLayeredWindowAttributes($HWND, 0x01, 0xFF, 3)
- Global $MainImage = _GDIPlus_ImageLoadFromFile($GUIImage)
- Global $hExit = _GDIPlus_BitmapCreateFromFile($ExitImage)
- Global $hMin = _GDIPlus_BitmapCreateFromFile($MinImage)
- ;==================================================
- ; GUIImage Größe ermitteln
- $iWidth = _GDIPlus_ImageGetWidth($MainImage)
- $iHeight = _GDIPlus_ImageGetHeight($MainImage)
- ;==================================================
- ; erstelle GUI
- $GUI = GUICreate($Title, $iWidth, $iHeight, $X, $Y, $WS_POPUP, $WS_EX_LAYERED)
- GUISetBkColor(0x01, $GUI)
- ;GUISetState(@SW_SHOW)
- _WinAPI_SetLayeredWindowAttributes($GUI, 0x01, 0xFF, 3)
- ;==================================================
- Global $hGrafics1 = _GDIPlus_GraphicsCreateFromHWND($GUI)
- ;Exit- und MinImage Größe ermitteln
- $iwExit = _GDIPlus_ImageGetWidth($hExit)
- $ihExit = _GDIPlus_ImageGetHeight($hExit)
- $iwMin = _GDIPlus_ImageGetWidth($hMin)
- $ihMin = _GDIPlus_ImageGetHeight($hMin)
- ;==================================================
- ; zeige Grafiken an
- _GDIPlus_GraphicsDrawImage($hGrafics1, $MainImage, 0, 0)
- _GDIPlus_GraphicsDrawImage($hGrafics1, $hExit, $iWidth - $iwExit, 0)
- _GDIPlus_GraphicsDrawImage($hGrafics1, $hMin, $iWidth - $iwExit - $iwMin, 0)
- GUIRegisterMsg($WM_PAINT, "ImageGUI_PAINT")
- ;==================================================
- Return $GUI
- EndFunc
- Func _ImageGUI_CreateSplash($Title, $SplashImage, $Secs, $X, $Y) ; erstellt ein SplashScreen basierend auf GDIPlus
- $SplImage = _GDIPlus_ImageLoadFromFile($SplashImage)
- ; SplashImage Größe ermitteln
- $iWidth = _GDIPlus_ImageGetWidth($SplImage)
- $iHeight = _GDIPlus_ImageGetHeight($SplImage)
- ; erstelle SplashGUI
- $hSplash = GUICreate($Title, $iWidth, $iHeight, $X, $Y, $WS_POPUP, $WS_EX_LAYERED)
- GUISetBkColor(0x01, $hSplash)
- GUISetState(@SW_SHOW)
- _WinAPI_SetLayeredWindowAttributes($hSplash, 0x01, 0xFF, 3)
- $hSplGrafics = _GDIPlus_GraphicsCreateFromHWND($hSplash)
- ; zeige Grafiken an
- _GDIPlus_GraphicsDrawImage($hSplGrafics, $SplImage, 0, 0)
- For $i = $Secs To 0 Step -1
- Sleep(1000)
- If $i = 0 Then
- _GDIPlus_GraphicsDispose($hSplGrafics)
- _GDIPlus_Shutdown()
- Exit
- EndIf
- Next
- Return $hSplash
- EndFunc
- ; Grafiken anzeigen
- Func ImageGUI_PAINT($hWnd, $Msg, $wParam, $lParam)
- ;Exit-, Max- und MinImage Größe ermitteln
- $iwExit = _GDIPlus_ImageGetWidth($hExit)
- $ihExit = _GDIPlus_ImageGetHeight($hExit)
- $iwMin = _GDIPlus_ImageGetWidth($hMin)
- $ihMin = _GDIPlus_ImageGetHeight($hMin)
- ; GUIImage Größe ermitteln
- $iWidth = _GDIPlus_ImageGetWidth($MainImage)
- $iHeight = _GDIPlus_ImageGetHeight($MainImage)
- ; Grafiken anzeigen
- _GDIPlus_GraphicsDrawImage($hGrafics1, $MainImage, 0, 0)
- _GDIPlus_GraphicsDrawImage($hGrafics1, $hExit, $iWidth - $iwExit, 0)
- _GDIPlus_GraphicsDrawImage($hGrafics1, $hMin, $iWidth - $iwExit - $iwMin, 0)
- ;~ _WinAPI_RedrawWindow($hGUI, 0, 0, 1)
- Return $GUI_RUNDEFMSG
- EndFunc
- Func _ImageGUI_GetWidth($ImageGetSize) ; ermittelt die Breitengröße der Grafik
- $BigImage = _GDIPlus_ImageLoadFromFile($ImageGetSize)
- $iW = _GDIPlus_ImageGetWidth($BigImage)
- Return $iW
- EndFunc
- Func _ImageGUI_GetHeight($ImageGetSize) ; ermittelt die Höhengröße der Grafik
- $BigImage = _GDIPlus_ImageLoadFromFile($ImageGetSize)
- $iH = _GDIPlus_ImageGetHeight($BigImage)
- Return $iH
- EndFunc
- Func _Exit()
- _GDIPlus_GraphicsDispose($hGrafics1)
- ;_GDIPlus_GraphicsDispose($hSplGrafics)
- ;_GDIPlus_ImageDispose()
- ;_GDIPlus_BitmapDispose()
- _GDIPlus_Shutdown()
- Exit
- EndFunc
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement