Модифицированный пример из недр Autoit, он отображает png изображение с прозрачностью в безрамочном окне. Суть вопроса, изображение отображается а как его убрать не закрывая скрипт (программу)? Не убирается никак, GuiDelete() не работает... Как только не пробовал..
Только сейчас придумал, нужно наверно освободить dll структуру, компа нет уже под рукой, да и не знаю как точно это делается...
Только сейчас придумал, нужно наверно освободить dll структуру, компа нет уже под рукой, да и не знаю как точно это делается...
Код:
#include <GDIPlus.au3>
#include <GuiConstantsEx.au3>
#include <WinAPI.au3>
#include <WindowsConstants.au3>
_SplashImageOn(@ScriptDir & "\45250112.png")
Sleep(3000)
_SplashImageOff()
Func _SplashImageOn($sImage)
Global $g_hGUI = GUICreate("", 512, 512, -1, -1, -1, $WS_EX_LAYERED)
_GDIPlus_Startup()
Global $g_hImage = _GDIPlus_ImageLoadFromFile($sImage)
setbitmap($g_hGUI, $g_hImage, 190)
GUISetState()
EndFunc
Func _SplashImageOff()
_GDIPlus_ImageDispose($g_hImage)
_GDIPlus_Shutdown()
EndFunc
Func setbitmap($hGUI, $hImage, $iOpacity)
Global $hScrDC, $hMemDC, $hBitmap, $hOld, $pSize, $tSize, $pSource, $tSource, $pBlend, $tBlend
$hScrDC = _WinAPI_GetDC(0)
$hMemDC = _WinAPI_CreateCompatibleDC($hScrDC)
$hBitmap = _GDIPlus_BitmapCreateHBITMAPFromBitmap($hImage)
$hOld = _WinAPI_SelectObject($hMemDC, $hBitmap)
_WinAPI_DeleteObject ($hBitmap)
$tSize = DllStructCreate($tagSIZE)
$pSize = DllStructGetPtr($tSize)
DllStructSetData($tSize, "X", _GDIPlus_ImageGetWidth($hImage))
DllStructSetData($tSize, "Y", _GDIPlus_ImageGetHeight($hImage))
$tSource = DllStructCreate($tagPOINT)
$pSource = DllStructGetPtr($tSource)
$tBlend = DllStructCreate($tagBLENDFUNCTION)
$pBlend = DllStructGetPtr($tBlend)
DllStructSetData($tBlend, "Alpha", $iOpacity)
DllStructSetData($tBlend, "Format", 1)
_WinAPI_UpdateLayeredWindow($hGUI, $hScrDC, 0, $pSize, $hMemDC, $pSource, 0, $pBlend, $ULW_ALPHA)
_WinAPI_ReleaseDC(0, $hScrDC)
_WinAPI_SelectObject($hMemDC, $hOld)
_WinAPI_DeleteObject($hBitmap)
_WinAPI_DeleteDC($hMemDC)
EndFunc ;==>SetBitmap