Автор Тема: Как на окно GUI добавить png-картинку  (Прочитано 4066 раз)

Antonmaype, Sashaoct, MichaelApem, JasonPaf и 1 Гость просматривают эту тему.

Эта тема содержит сообщение, помеченное как лучший ответ. Кликните здесь для перехода к этому сообщению.

Оффлайн Snegovik [?]

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

Существует пнг-картинка с прозрачным фоном.
У этой картинки есть ширина и высота.
Как создать интерфейс GUI - который бы подобрал такую ширину и высоту окна (которая бы соответствовала картинке png) и вписал бы в окно эту картинку ?

То есть это то же самое окно, только на него будет наложена png-картинка.



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

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

Как на окно GUI добавить png-картинку
« Отправлен: Июнь 08, 2019, 07:42:19 »

Оффлайн joiner [?]

  • Расмус-бродяга
  • Локальный модератор
  • *
  • Сообщений: 2949
  • Репутация: 494
  • Пол: Мужской
    • Награды
  • Версия AutoIt: 3.3.12.0
Re: Как на окно GUI добавить png-картинку
« Ответ #1, Отправлен: Июнь 08, 2019, 09:21:53 »
На форуме много примеров. Есть поиск. Внизу своей темы посмотри сходные темы.
Были времена, когда солнце было ярче, трава зеленее, а водка сорокоградуснее

Оффлайн Snegovik [?]

  • Новичок
  • *
  • Сообщений: 29

  • Автор темы
  • Репутация: 0
  • Пол: Мужской
    • Награды
  • Версия AutoIt: 3.3.14.0
Re: Как на окно GUI добавить png-картинку
« Ответ #2, Отправлен: Июнь 09, 2019, 18:47:57 »
joiner, я нашел вот такой скрипт:

(нажмите для показа/скрытия)

Но я не могу определить - поддерживается ли здесь прозрачный фон или нет, поскольку фон окна - черный.
И еще - размеры окна здесь - приходится задавать вручную "...$hGUI = GUICreate("PET", 324, 243..." в коде эти размеры не подстраиваются под размеры картинки.
Как это изменить ?

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

Re: Как на окно GUI добавить png-картинку
« Ответ #2 Отправлен: Июнь 09, 2019, 18:47:57 »

Оффлайн joiner [?]

  • Расмус-бродяга
  • Локальный модератор
  • *
  • Сообщений: 2949
  • Репутация: 494
  • Пол: Мужской
    • Награды
  • Версия AutoIt: 3.3.12.0
Re: Как на окно GUI добавить png-картинку
« Ответ #3, Отправлен: Июнь 09, 2019, 19:52:03 »
Код: AutoIt [Выделить]
#include <GDIPlus.au3>
#include <WinAPIEx.au3>
#include <GUIConstants.au3>

$hGUI = GUICreate("PET", 324, 243, -1, -1, $WS_POPUP, BitOr($WS_EX_LAYERED,$WS_EX_TOOLWINDOW, $GUI_WS_EX_PARENTDRAG))
GUISetBkColor(50)
$Pic = GUICtrlCreatePic("", 0, 0, 324, 243, -1, $GUI_WS_EX_PARENTDRAG)
_SetPNGIntoPicControl($Pic, @ScriptDir & "\1.png")

$hLab_1 = GUICtrlCreateLabel ( "Text 1", 55, 20, 50, 20 )
$hLab_2 = GUICtrlCreateLabel ( "Text 2", 55, 53, 50, 20 )
$hLab_3 = GUICtrlCreateLabel ( "Text 3", 55, 86, 50, 20 )
$hLab_4 = GUICtrlCreateLabel ( "15.59 - 19/01/2014", 15, 110, 100, 20 )

GUICtrlSetFont ($hLab_1, 10, 600, 0,"Tahoma")
GUICtrlSetColor ( $hLab_1, 0xE1E100 )
GUICtrlSetBkColor ($hLab_1,-2)
GUICtrlSetFont ($hLab_2, 10, 600, 0,"Tahoma")
GUICtrlSetColor ( $hLab_2, 0xE1E100 )
GUICtrlSetBkColor ($hLab_2,-2)
GUICtrlSetFont ($hLab_3, 10, 600, 0,"Tahoma")
GUICtrlSetColor ( $hLab_3, 0xE1E100 )
GUICtrlSetBkColor ($hLab_3,-2)
GUICtrlSetFont ($hLab_4, 7, 600, 0,"Tahoma")
GUICtrlSetColor ( $hLab_4, 0xFFFFFF )
GUICtrlSetBkColor ($hLab_4,-2)
_WinAPI_SetLayeredWindowAttributes($hGUI, 50, 255)

GUISetState()

While 1
    Switch GUIGetMsg()
        Case -3
            Exit
    EndSwitch
WEnd

Func _SetPNGIntoPicControl($iPic, $sPNGFile)
    _GDIPlus_Startup()
    Local $hImage = _GDIPlus_ImageLoadFromFile($sPNGFile)
    Local $hBitmap = _GDIPlus_BitmapCreateHBITMAPFromBitmap($hImage)
    _WinAPI_DeleteObject(GUICtrlSendMsg($iPic, 0x172, 0, $hBitmap))
    _WinAPI_DeleteObject($hBitmap)
    _GDIPlus_ImageDispose($hImage)
    _GDIPlus_Shutdown()
EndFunc
 

только клик проходит через окно ))
зачем прозрачная средина?

Оффлайн Snegovik [?]

  • Новичок
  • *
  • Сообщений: 29

  • Автор темы
  • Репутация: 0
  • Пол: Мужской
    • Награды
  • Версия AutoIt: 3.3.14.0
Re: Как на окно GUI добавить png-картинку
« Ответ #4, Отправлен: Июнь 09, 2019, 19:57:28 »
joiner
У вас тоже - размеры окна здесь - задаются вручную "...$hGUI = GUICreate("PET", 324, 243..." а не подстраиваются под размеры картинки.
(Тут смысл в том, что картинка может быть любого размера.)

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

Re: Как на окно GUI добавить png-картинку
« Ответ #4 Отправлен: Июнь 09, 2019, 19:57:28 »

Помечен как лучший ответ пользователем Snegovik Отправлен Июнь 09, 2019, 21:31:57

Оффлайн joiner [?]

  • Расмус-бродяга
  • Локальный модератор
  • *
  • Сообщений: 2949
  • Репутация: 494
  • Пол: Мужской
    • Награды
  • Версия AutoIt: 3.3.12.0
Re: Как на окно GUI добавить png-картинку
« Ответ #5, Отправлен: Июнь 09, 2019, 20:27:37 »
(нажмите для показа/скрытия)

« Последнее редактирование: Июнь 10, 2019, 07:38:37 от joiner »

Оффлайн Snegovik [?]

  • Новичок
  • *
  • Сообщений: 29

  • Автор темы
  • Репутация: 0
  • Пол: Мужской
    • Награды
  • Версия AutoIt: 3.3.14.0
Re: Как на окно GUI добавить png-картинку
« Ответ #6, Отправлен: Июнь 09, 2019, 21:31:48 »
joiner, спасибо - все заработало.

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

Re: Как на окно GUI добавить png-картинку
« Ответ #6 Отправлен: Июнь 09, 2019, 21:31:48 »

 

Похожие темы

  Тема / Автор Ответов Последний ответ
3 Ответов
4412 Просмотров
Последний ответ Август 31, 2011, 13:11:43
от axlwor
3 Ответов
2570 Просмотров
Последний ответ Апрель 03, 2012, 16:47:29
от Zaramot
6 Ответов
2872 Просмотров
Последний ответ Декабрь 16, 2013, 23:30:57
от joiner
5 Ответов
4752 Просмотров
Последний ответ Январь 20, 2014, 05:49:10
от Astel064
6 Ответов
3190 Просмотров
Последний ответ Март 16, 2014, 23:06:37
от madmasles
3 Ответов
1515 Просмотров
Последний ответ Июнь 18, 2014, 06:05:34
от C2H5OH
1 Ответов
2535 Просмотров
Последний ответ Январь 27, 2016, 15:52:21
от InnI
14 Ответов
4682 Просмотров
Последний ответ Март 31, 2016, 10:56:09
от Alofa
7 Ответов
2461 Просмотров
Последний ответ Август 19, 2016, 05:24:48
от Stalevar
2 Ответов
400 Просмотров
Последний ответ Май 28, 2018, 14:12:03
от gergerger111