|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » AutoIt » [решено] Отображение картинки без каких либо дополнит окон, кнопок, бордюров... |
|
|
[решено] Отображение картинки без каких либо дополнит окон, кнопок, бордюров...
|
Старожил Сообщения: 379 |
Профиль | Отправить PM | Цитировать Нашел в стандартных примерах нечто похожее(показывает пример использования "ползунка" в аутоите)
Вот путь к примеру: C:\Program Files\AutoIt3\Examples\GUI\Advanced\AlphaBlend.au3 Помогите, пожалуйста. |
|
Отправлено: 13:31, 02-05-2009 |
Старожил Сообщения: 307
|
Профиль | Отправить 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 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Старожил Сообщения: 379
|
Профиль | Отправить PM | Цитировать Как говориться ко всем твоим постам: "То что доХтор прописал!"
Слушай, а можешь дать асю свою, чтобы я тебя иногда маял в личке? |
------- Отправлено: 16:37, 02-05-2009 | #3 |
Старожил Сообщения: 379
|
Профиль | Отправить PM | Цитировать А можно сделать, чтобы картинка плавно появлялась? Через полупрозрачность...
|
------- Отправлено: 18:12, 02-05-2009 | #4 |
Старожил Сообщения: 307
|
Профиль | Отправить PM | Цитировать Для рисунка можна установить только прозрачность( от 0 до 255, в функции SetBitMap 3 параметр), но вот именно в этом примере плавное появление именно рисунка, мне лично не удается реализовать.
|
|
------- Отправлено: 21:14, 03-05-2009 | #5 |
Старожил Сообщения: 215
|
Профиль | Отправить PM | Цитировать |
------- Отправлено: 22:36, 03-05-2009 | #6 |
Пользователь Сообщения: 87
|
Профиль | Отправить PM | Цитировать А разве в том коде который привел beve, нельзя реализовать появление путем простого зацикливания SetBitmap($hGUI, $hImage, $iOpacity) с увеличением $iOpacity каждый раз на +1 до нужного предела?
|
Отправлено: 06:07, 04-05-2009 | #7 |
Старожил Сообщения: 307
|
Профиль | Отправить PM | Цитировать Цитата Belfigor:
но появление не на столько плавно появляется...по крайней мере у меня практически так само, или я что то не так делаю... Добавлено: Пример 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 |
Старожил Сообщения: 215
|
Профиль | Отправить 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
|
Профиль | Отправить PM | Цитировать Чтобы появлялось плавно надо в - Step - поставить не 1 а 0.1
|
Отправлено: 03:11, 16-07-2009 | #10 |
|
Участник сейчас на форуме | Участник вне форума | Автор темы | Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
Интерфейс - [решено] Отображение окон программ в усеченном виде | 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 |
|