Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » AutoIt » [решено] Отображение картинки без каких либо дополнит окон, кнопок, бордюров...

Ответить
Настройки темы
[решено] Отображение картинки без каких либо дополнит окон, кнопок, бордюров...

Аватара для sashadeg

Старожил


Сообщения: 379
Благодарности: 6

Профиль | Отправить PM | Цитировать


Нашел в стандартных примерах нечто похожее(показывает пример использования "ползунка" в аутоите)

Вот путь к примеру:

C:\Program Files\AutoIt3\Examples\GUI\Advanced\AlphaBlend.au3

Помогите, пожалуйста.

Отправлено: 13:31, 02-05-2009

 

Аватара для beve

Старожил


Сообщения: 307
Благодарности: 137

Профиль | Отправить PM | Цитировать


Код: Выделить весь код
#include <WindowsConstants.au3>
#include <GuiConstantsEx.au3>
#include <GDIPlus.au3> 

Global $yGUI
;путь к рисунку
Global $picture="C:\картинка.gif"


image()
Sleep(2000) ;время показывания картинки
GuiDelete($yGUI) ;удаляем гуи и вместе с ним и рисунок на нем


;где размещено gui окно на робочем столе, там будет и рисунок
Func image()
$yGUI = GUICreate("", 200, 120, (@DesktopWidth/2)-100, (@DesktopHeight/2)-60, $WS_POPUP , $WS_EX_LAYERED + $WS_EX_TOOLWINDOW+$WS_EX_TOPMOST)
_GDIPlus_Startup()
$yImage = _GDIPlus_ImageLoadFromFile($picture)
SetBitMap($yGUI , $yImage, 255)
GUISetState(@SW_SHOW,$yGUI)
EndFunc 
;
Func SetBitmap($hGUI, $hImage, $iOpacity)
Local $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)
$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

-------
Не в кількості знань полягає освіта, а в повному розумінні і вмілому використанні того, що знаєш.


Последний раз редактировалось beve, 03-05-2009 в 20:59.

Это сообщение посчитали полезным следующие участники:

Отправлено: 15:42, 02-05-2009 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Аватара для sashadeg

Старожил


Сообщения: 379
Благодарности: 6

Профиль | Отправить PM | Цитировать


Как говориться ко всем твоим постам: "То что доХтор прописал!"
Слушай, а можешь дать асю свою, чтобы я тебя иногда маял в личке?

-------
Ну вы ребята даёте...


Отправлено: 16:37, 02-05-2009 | #3


Аватара для sashadeg

Старожил


Сообщения: 379
Благодарности: 6

Профиль | Отправить PM | Цитировать


А можно сделать, чтобы картинка плавно появлялась? Через полупрозрачность...

-------
Ну вы ребята даёте...


Отправлено: 18:12, 02-05-2009 | #4


Аватара для beve

Старожил


Сообщения: 307
Благодарности: 137

Профиль | Отправить PM | Цитировать


Для рисунка можна установить только прозрачность( от 0 до 255, в функции SetBitMap 3 параметр), но вот именно в этом примере плавное появление именно рисунка, мне лично не удается реализовать.

-------
Не в кількості знань полягає освіта, а в повному розумінні і вмілому використанні того, що знаєш.

Это сообщение посчитали полезным следующие участники:

Отправлено: 21:14, 03-05-2009 | #5


Аватара для SyDr

Старожил


Сообщения: 215
Благодарности: 62

Профиль | Отправить PM | Цитировать


http://forum.oszone.net/post-986864-1329.html

-------

"Что мы думаем, знаем или во что верим в конце концов не так уж и важно.
Важно лишь то, что мы делаем."
Джон Раскин


Отправлено: 22:36, 03-05-2009 | #6


Аватара для Belfigor

Пользователь


Сообщения: 87
Благодарности: 11

Профиль | Отправить PM | Цитировать


А разве в том коде который привел beve, нельзя реализовать появление путем простого зацикливания SetBitmap($hGUI, $hImage, $iOpacity) с увеличением $iOpacity каждый раз на +1 до нужного предела?

Отправлено: 06:07, 04-05-2009 | #7


Аватара для beve

Старожил


Сообщения: 307
Благодарности: 137

Профиль | Отправить PM | Цитировать


Цитата Belfigor:
реализовать появление путем простого зацикливания SetBitmap($hGUI, $hImage, $iOpacity) с увеличением $iOpacity каждый раз на +1 до нужного предела? »
Можно, нужно в функции image() заменить SetBitMap($yGUI , $yImage, 255) на
Код: Выделить весь код
$iOpacity=255
 For $i = 0 To $iOpacity Step 1
    SetBitmap($yGUI, $yImage, $i)
           Next
но появление не на столько плавно появляется...по крайней мере у меня практически так само, или я что то не так делаю...
Добавлено:
Пример CreatOR-а из страницы http://forum.oszone.net/post-986864.html#post986864 (Пример из страницы , что указал Sylver Dragon, у меня не работает, но 1 страница назад, там пример CreatOR-a) точно - плавно появляется.

-------
Не в кількості знань полягає освіта, а в повному розумінні і вмілому використанні того, що знаєш.


Последний раз редактировалось beve, 04-05-2009 в 13:01.


Отправлено: 12:46, 04-05-2009 | #8


Аватара для SyDr

Старожил


Сообщения: 215
Благодарности: 62

Профиль | Отправить PM | Цитировать


Так в том посте и было реализовано плавное появление через такой цикл.
Чтобы работало - следует заменить:
Global Const $WM_LBUTTONDOWN = 0x0201
Global Const $WM_LBUTTONUP = 0x0202
Global Const $ULW_ALPHA = 2
Global Const $AC_SRC_ALPHA = 1
На:
Global $WM_LBUTTONDOWN = 0x0201
Global $AC_SRC_ALPHA = 1

А в вашем варианте - создание GUI висит в цикле. Поэтому плавность появления и не работает.

-------

"Что мы думаем, знаем или во что верим в конце концов не так уж и важно.
Важно лишь то, что мы делаем."
Джон Раскин

Это сообщение посчитали полезным следующие участники:

Отправлено: 18:13, 04-05-2009 | #9


Пользователь


Сообщения: 62
Благодарности: 0

Профиль | Отправить PM | Цитировать


Чтобы появлялось плавно надо в - Step - поставить не 1 а 0.1

Отправлено: 03:11, 16-07-2009 | #10



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » AutoIt » [решено] Отображение картинки без каких либо дополнит окон, кнопок, бордюров...

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Интерфейс - [решено] Отображение окон программ в усеченном виде baltiec Microsoft Windows 2000/XP 9 23-07-2016 18:18
Драйвер - Некорректное отображение текстур, окон steips Microsoft Windows Vista 0 12-01-2010 15:14
какой BIOS лучше на мамку ASUS P5B-VM 1004 либо 0901 либо 0504 либо 0405 либо 0307 paljch Материнские платы и память 1 12-11-2009 23:27
При переустановке XP комп влюбое время стал вырубаться, без каких либой сообщений collman Непонятные проблемы с Железом 11 07-10-2009 09:58
Комп сам уходит в перезагрузку без каких либо объективных причин MXMX Непонятные проблемы с Железом 45 07-06-2008 14:18




 
Переход