Автор Тема: Управление PNG изображением с прозрачными участками  (Прочитано 602 раз)

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

Оффлайн Yuriy_V. [?]

  • Новичок
  • *
  • Сообщений: 11
  • Репутация: 0
  • Пол: Мужской
    • Награды
  • Версия AutoIt: 3.3.12.0
Добрый день.

Пересмотрел кучу тем в форуме, но так и не могу решить задачу.
Есть окно в котором фон JPG изображение и две кнопки. Нужно, что бы при нажатии на "кнопку 1" появлялось в окне на фоне изображение PNG (в этом изображении есть прозрачные участки), а при нажатии на "кнопку 2" PNG изображение исчезало, а фон оставался.

Пока что пробовал просто наложить два изображения, но естественно PNG картинка накладывается на белом фоне.

Код: AutoIt [Выделить]
$Fon = GUICreate("", 1920, 1080,-1,-1)
$Pic = GUICtrlCreatePic("", 0, 0, 1920, 1080)
_SetImage($Pic, "Путь к файлу фона")
GUISetState(@SW_SHOW, $Fon)
Sleep(1000)
$Icon = GUICreate("Icon", 1169, 1080,-1,-1, $WS_POPUP, 0, $Fon)
$Pic2 = GUICtrlCreatePic("Icon", 0, 0, 1169, 1080)
_SetImage($Pic2, "Путь к файлу PNG")
GUISetState(@SW_SHOW, $Icon)
Sleep(2000)
 


А нужно так как на риснуке.

Заранее благодарен за любую помощь.



Внимание: Для просмотра прикреплённых файлов необходимо Войти или Зарегистрироваться

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


Онлайн InnI [?]

  • AutoIt Гуру
  • *****
  • Сообщений: 3975
  • Репутация: 1056
    • Награды
  • Версия AutoIt: 3.3.14.0
Картинки приложены
Код: AutoIt [Выделить]
#include <GDIPlus.au3>
#include <WinAPISys.au3>
#include <GuiConstants.au3>

$JpgPath = @ScriptDir & "\fon.jpg"
$PngPath = @ScriptDir & "\ico.png"

$Fon = GUICreate("")
$Pic = GUICtrlCreatePic($JpgPath, 0, 0, 400, 400)
GUICtrlSetState(-1, $GUI_DISABLE)
$BtnShow = GUICtrlCreateButton("Показать", 10, 370)
$BtnHide = GUICtrlCreateButton("Скрыть", 340, 370)
GUISetState(@SW_SHOW, $Fon)

_GDIPlus_Startup()
$hImage = _GDIPlus_ImageLoadFromFile($PngPath)
$hBitmap = _GDIPlus_BitmapCreateHBITMAPFromBitmap($hImage)
_GDIPlus_ImageDispose($hImage)
_GDIPlus_Shutdown()

$Icon = GUICreate("", 200, 200, -1, -1, $WS_POPUP, $WS_EX_LAYERED, $Fon)
GUISetState(@SW_SHOW, $Icon)
_WinAPI_UpdateLayeredWindowEx($Icon, -1, -1, $hBitmap, 255, True)

Do
  Switch GUIGetMsg()
    Case -3
      Exit
    Case $BtnShow
      WinSetState($Icon, "", @SW_SHOW)
    Case $BtnHide
      WinSetState($Icon, "", @SW_HIDE)
  EndSwitch
Until 0



Внимание: Для просмотра прикреплённых файлов необходимо Войти или Зарегистрироваться

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

Re: Управление PNG изображением с прозрачными участками
« Ответ #1 Отправлен: Июнь 29, 2018, 12:56:09 »

 

Похожие темы

  Тема / Автор Ответов Последний ответ
1 Ответов
2777 Просмотров
Последний ответ Декабрь 26, 2010, 05:46:11
от Kaster
6 Ответов
4041 Просмотров
Последний ответ Октябрь 09, 2011, 23:55:01
от Yashied
1 Ответов
2425 Просмотров
Последний ответ Декабрь 12, 2011, 16:56:00
от nikita1996spb
1 Ответов
3205 Просмотров
Последний ответ Апрель 06, 2012, 19:48:58
от Gealut
3 Ответов
2278 Просмотров
Последний ответ Май 18, 2012, 18:59:26
от UnEpicFail
9 Ответов
2237 Просмотров
Последний ответ Июнь 04, 2015, 01:26:16
от Yashied
5 Ответов
1427 Просмотров
Последний ответ Июнь 11, 2015, 15:06:52
от saraconor
13 Ответов
3179 Просмотров
Последний ответ Август 04, 2015, 18:19:29
от Yashied
0 Ответов
897 Просмотров
Последний ответ Август 25, 2015, 16:01:08
от sokolovska
1 Ответов
2427 Просмотров
Последний ответ Январь 27, 2016, 15:52:21
от InnI