Автор Тема: SplashScreen - Функция для создания заставки.  (Прочитано 3495 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Zaramot [?]

  • AutoIt Гуру
  • *****
  • Сообщений: 1160
  • Репутация: 655
  • Пол: Мужской
  • I ♥ AutoIt
    • Награды
  • Версия AutoIt: 3.3.8.1
Описание:
Функция создаёт Splash Screen окно с эффектами появления и закрытия окна.
Код: AutoIt [Выделить]
; #FUNCTION# ==============================================================================================================
; Название...:  SplashScreen.au3
; Описание...:  Функция создаёт Splash Screen окно.
; Синтаксис..: _CreateSplashScreen($SC_TTITLE, $SC_WIDTH, $SC_HEIGHT, $SC_X, $SC_Y, $SC_BITMAP, $SC_STARTEFFECT, $SC_CLOSEEFFECT, $SC_TIME)
; Параметры..: $SC_TITLE - Заголовок окна.
;                   $SC_WIDTH       - Ширина окна.
;                   $SC_HEIGHT      - Высота окна.
;                   $SC_X           - Координата левого края.
;                   $SC_Y           - Координата верхнего края.
;                   $SC_BITMAP      - Изображение.
;                   $SC_STARTEFFECT - данный параметр задаёт эффект при появлении Splash Screen окна.
;                   $SC_CLOSEEFFECT - данный параметр задаёт эффект при закрытии Splash Screen окна.
;                   $SC_TIME        - длительность показа окна (в миллисекундах).
; Автор......: Zaramot
; =========================================================================================================================

;Эффекты
Global Const $SC_EXPLODE = 0x00040010
Global Const $SC_IMPLODE = 0x00050010
Global Const $SC_FADE_IN = 0x00080000
Global Const $SC_FADE_OUT = 0x00090000
Global Const $SC_SLIDE_IN_LEFT = 0x00040001
Global Const $SC_SLIDE_OUT_LEFT = 0x00050002
Global Const $SC_SLIDE_IN_RIGHT = 0x00040002
Global Const $SC_SLIDE_OUT_RIGHT = 0x00050001
Global Const $SC_SLIDE_IN_TOP = 0x00040004
Global Const $SC_SLIDE_OUT_TOP = 0x00050008
Global Const $SC_SLIDE_IN_BOTTOM = 0x00040008
Global Const $SC_SLIDE_OUT_BOTTOM = 0x00050004
Global Const $SC_DIAG_SLIDE_IN_TL = 0x00040005
Global Const $SC_DIAG_SLIDE_OUT_TL = 0x0005000a
Global Const $SC_DIAG_SLIDE_IN_TR = 0x00040006
Global Const $SC_DIAG_SLIDE_OUT_TR = 0x00050009
Global Const $SC_DIAG_SLIDE_IN_BL = 0x00040009
Global Const $SC_DIAG_SLIDE_OUT_BL = 0x00050006
Global Const $SC_DIAG_SLIDE_IN_BR = 0x0004000a
Global Const $SC_DIAG_SLIDE_OUT_BR = 0x00050005
Global Const $SC_DEFAULT = 0x00000000

;Стили окна
Global Const $WS_POPUP = 0x80000000
Global Const $WS_EX_TOPMOST = 0x00000008

;Переменные
Global $SC_GUI, $SC_TTITLE, $SC_WIDTH, $SC_HEIGHT, $SC_X, $SC_Y, $SC_BITMAP, $SC_STARTEFFECT, $SC_CLOSEEFFECT, $SC_TIME

Func SplashScreen($SC_TTITLE, $SC_WIDTH, $SC_HEIGHT, $SC_X, $SC_Y, $SC_BITMAP, $SC_STARTEFFECT, $SC_CLOSEEFFECT, $SC_TIME)
    $SC_GUI = GUICreate($SC_TTITLE, $SC_WIDTH, $SC_HEIGHT, $SC_X, $SC_Y, $WS_POPUP, $WS_EX_TOPMOST)
    GUICtrlCreatePic($SC_BITMAP, 0, 0, $SC_WIDTH, $SC_HEIGHT)
    DllCall("user32.dll", "int", "AnimateWindow", "hwnd", $SC_GUI, "int", 1000, "long", $SC_STARTEFFECT)
    GUISetState()
    Sleep($SC_TIME)
    DllCall("user32.dll", "int", "AnimateWindow", "hwnd", $SC_GUI, "int", 1000, "long", $SC_CLOSEEFFECT)
    GUIDelete($SC_GUI)
EndFunc


Пример:
Код: AutoIt [Выделить]
#include "SplashScreen.au3"

SplashScreen('', 400, 300, -1, -1, 'Image.jpg', $SC_FADE_IN, $SC_FADE_OUT, 1000)

GUICreate("Form1")
GUISetState(@SW_SHOW)

Do
Until GUIGetMsg() = -3


Автор(ы): Zaramot

Файл(ы): Image.jpg
Нажмите для отображения изображения в оригинальном размере.

P.S Это моя первая "полезняшка" так что не пинайте сильно  :)

Русское сообщество AutoIt

SplashScreen - Функция для создания заставки.
« Отправлен: Август 29, 2011, 00:48:49 »

Оффлайн Garrett [?]

  • Глобальный модератор
  • *
  • Сообщений: 3999
  • Репутация: 960
  • Пол: Мужской
    • Награды
  • Версия AutoIt: 3.3.14.0
Re: SplashScreen - Функция для создания заставки.
« Ответ #1, Отправлен: Август 29, 2011, 01:22:34 »
Zaramot, загляните сюда, не пожалеете!  ;)
Рекомендую!

P.S. Спасибо Yashied`у!

Скорблю и помню.




Оффлайн La2Angel [?]

  • Новичок
  • *
  • Сообщений: 144
  • Репутация: 0
    • Награды
Re: SplashScreen - Функция для создания заставки.
« Ответ #2, Отправлен: Август 30, 2011, 23:09:30 »
Нормально, а я для себя такую сделал.

Код: AutoIt [Выделить]
$destination = @ScriptDir & "\images.jpg"
SplashImageOn($Title2, $destination,400,250,@DesktopWidth/2-200,@DesktopHeight/2-125,1)

For $i = 1 to 255 Step 3
WinSetTrans($Title2,"",$i)
Sleep(10)
Next

For $i = 255 to 1 Step -3
WinSetTrans($Title2,"",$i)
Sleep(10)
Next


SplashOff()


Оффлайн mikzin [?]

  • Новичок
  • *
  • Сообщений: 70
  • Репутация: 0
    • Награды
Re: SplashScreen - Функция для создания заставки
« Ответ #3, Отправлен: Август 10, 2018, 09:50:17 »
че-та не работает, ошибка..

>"C:\Program Files (x86)\AutoIt3\Include\SplashScreen.au3"(41,36) : error: $WS_POPUP previously declared as a 'Const'.
Global Const $WS_POPUP = 0x80000000

Русское сообщество AutoIt

Re: SplashScreen - Функция для создания заставки
« Ответ #3 Отправлен: Август 10, 2018, 09:50:17 »

Оффлайн joiner [?]

  • Расмус-бродяга
  • AutoIt Гуру
  • *****
  • Сообщений: 2711
  • Репутация: 459
  • Пол: Мужской
    • Награды
  • Версия AutoIt: 3.3.12.0
Re: SplashScreen - Функция для создания заставки
« Ответ #4, Отправлен: Август 10, 2018, 13:44:50 »
mikzin
убери из кода
Код: AutoIt [Выделить]
;Стили окна
Global Const $WS_POPUP = 0x80000000
Global Const $WS_EX_TOPMOST = 0x00000008

они у тебя уже объявлены в
Код: AutoIt [Выделить]
#include <WindowsConstants.au3>

Были времена, когда солнце было ярче, трава зеленее, а водка сорокоградуснее

Русское сообщество AutoIt

Re: SplashScreen - Функция для создания заставки
« Ответ #4 Отправлен: Август 10, 2018, 13:44:50 »

 

Похожие темы

  Тема / Автор Ответов Последний ответ
57 Ответов
34443 Просмотров
Последний ответ Ноябрь 04, 2013, 16:43:00
от Garrett
2 Ответов
3478 Просмотров
Последний ответ Октябрь 07, 2010, 01:03:46
от saavaage
3 Ответов
3945 Просмотров
Последний ответ Апрель 09, 2011, 19:38:12
от Sergey2210
0 Ответов
2541 Просмотров
Последний ответ Апрель 26, 2011, 15:47:39
от millgan
2 Ответов
2318 Просмотров
Последний ответ Июль 12, 2011, 17:27:48
от CreatoR
16 Ответов
6388 Просмотров
Последний ответ Июль 31, 2011, 21:55:04
от valdur2000
3 Ответов
3498 Просмотров
Последний ответ Октябрь 31, 2011, 18:36:56
от Yashied
10 Ответов
4878 Просмотров
Последний ответ Январь 10, 2014, 23:20:24
от Siroga00VII
2 Ответов
3409 Просмотров
Последний ответ Ноябрь 15, 2011, 23:34:16
от Arei
15 Ответов
6409 Просмотров
Последний ответ Апрель 01, 2012, 03:00:37
от vanekzver