Advertisement
emga9xkc

Source GUI PNG Autoit

Feb 13th, 2018
102
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
AutoIt 2.25 KB | None | 0 0
  1. #include <WindowsConstants.au3>
  2. #include <GUIConstantsEx.au3>
  3. #include <GDIPlus.au3>
  4. #include <WinAPI.au3>
  5. Opt("guioneventmode",1)
  6. Global Const $AC_SRC_ALPHA = 1
  7. _GDIPlus_Startup()
  8.  
  9. $hImage = _GDIPlus_ImageLoadFromFile("h.png")
  10. $width = _GDIPlus_ImageGetWidth($hImage)
  11. $height = _GDIPlus_ImageGetHeight($hImage)
  12. $gui = GUICreate("", $width, $height, -1, -1, $WS_POPUP, $WS_EX_LAYERED, GUICreate("",0,0,50,100))
  13. GUICtrlCreateLabel("",0,0,99999,99999,-1,$GUI_WS_EX_PARENTDRAG)
  14. GUISetOnEvent(-3,"tat")
  15. GUICtrlCreateButton("daddsa",50,50,220,40)
  16. GUISetState(@SW_SHOW)
  17. ShowPic_On_Off(3)  ;; thay đổi giá trị này để tăng hoặc giảm số lần hình ảnh xuất hiện và biến mất...
  18. Sleep(2000)
  19. Exit
  20.  
  21. While 1
  22.    Sleep(100)
  23. WEnd
  24.  
  25. func tat()
  26.    Exit
  27. EndFunc
  28.  
  29. Func SetBitmap($hGUI, $hImage, $iOpacity)
  30.         Local $hScrDC, $hMemDC, $hBitmap, $hOld, $pSize, $tSize, $pSource, $tSource, $pBlend, $tBlend
  31.         $hScrDC = _WinAPI_GetDC(0)
  32.         $hMemDC = _WinAPI_CreateCompatibleDC($hScrDC)
  33.         $hBitmap = _GDIPlus_BitmapCreateHBITMAPFromBitmap($hImage)
  34.         $hOld = _WinAPI_SelectObject($hMemDC, $hBitmap)
  35.         $tSize = DllStructCreate($tagSIZE)
  36.         $pSize = DllStructGetPtr($tSize)
  37.         DllStructSetData($tSize, "X", _GDIPlus_ImageGetWidth($hImage))
  38.         DllStructSetData($tSize, "Y", _GDIPlus_ImageGetHeight($hImage))
  39.         $tSource = DllStructCreate($tagPOINT)
  40.         $pSource = DllStructGetPtr($tSource)
  41.         $tBlend = DllStructCreate($tagBLENDFUNCTION)
  42.         $pBlend = DllStructGetPtr($tBlend)
  43.         DllStructSetData($tBlend, "Alpha", $iOpacity)
  44.         DllStructSetData($tBlend, "Format", $AC_SRC_ALPHA)
  45.         _WinAPI_UpdateLayeredWindow($hGUI, $hScrDC, 0, $pSize, $hMemDC, $pSource, 0, $pBlend, $ULW_ALPHA)
  46.         _WinAPI_ReleaseDC(0, $hScrDC)
  47.         _WinAPI_SelectObject($hMemDC, $hOld)
  48.         _WinAPI_DeleteObject($hBitmap)
  49.         _WinAPI_DeleteDC($hMemDC)
  50. EndFunc
  51.  
  52. Func ShowPic_On_Off($iNumTimes)
  53.     Do
  54.         For $i=255 to 5 Step -10
  55.             SetBitmap($gui, $hImage, $i)
  56.             Sleep(50)
  57.         Next
  58.         For $i=5 to 255 Step +10
  59.             SetBitmap($gui, $hImage, $i)
  60.             Sleep(50)
  61.         Next
  62.         $iNumTimes -= 1
  63.     Until ($iNumTimes == 0)
  64. EndFunc
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement