Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   AutoIt (http://forum.oszone.net/forumdisplay.php?f=103)
-   -   [решено] Цвет фона иконки (http://forum.oszone.net/showthread.php?t=352583)

morgan1991 13-12-2022 00:15 2998698

Цвет фона иконки
 
Доброго времени суток.
Возникла следующая проблема.
Необходимо в окне Gui в определенной области изменить цвет фона и вставить поверх иконку.
Сделал так: вставил пустой Lable с нужным размером и цветом. Поверх вставил иконку. Все отлично, НО у иконки вокруг картинки фон цвета основного цвета окна. А мне нужно что-бы цвет был как у лэйбла.
Можно создать дочернее окно вместо lable нужного цвета, тогда все ок. Но необходимо настроить зависимость при изменении размера родительского окна и при его перемещении, перемещать дочернее. Но это может сказаться при нагруженной машине.
Помогите пожалуйста.
Код:

#include <guiconstants.au3>

GUICreate("", 300, 300)
GUICtrlCreateLabel("", 0, 0, 300, 100)
GUICtrlSetBkColor(-1, 0x000000)

GUICtrlCreateIcon("imageres.dll", 2, 10, 5, 50, 50)
GUICtrlSetBkColor(-1, 0x000000) ;НЕ работает
GUICtrlSetColor(-1, 0x000000) ;НЕ работает

GUISetState()


While 1
    Switch GUIGetMsg()
        Case $GUI_EVENT_CLOSE
            Exit
    EndSwitch
WEnd


morgan1991 14-12-2022 16:48 2998855

Вопрос закрыт. Решение с Русского сообщества:

Код:

#AutoIt3Wrapper_Run_AU3Check=n ;Пропускать предупреждения при сборке

#include <GDIPlus.au3>
#include <Icons.au3>
GUICreate('',300,300)
GUICtrlCreateLabel('',0,0,300,100)
GUICtrlSetBkColor(-1,0x000000)
_Set_Icn_Alfa('imageres.dll',1,10,5,50)
_Set_Icn_Alfa('imageres.dll',100,60,5,50)
_Set_Icn_Alfa('imageres.dll',101,110,5,50)
GUISetState()

While 1
  If -3=GUIGetMsg()Then Exit
WEnd

Func _Set_Icn_Alfa($sFile,$n,$iX,$iY,$k)
  Local $ID=GUICtrlCreatePic('',$iX,$iY,$k,$k)
  Local $hIcon=_Icons_Icon_Extract($sFile,$n,$k,$k)
  Local $hBitmap=_Icons_Bitmap_CreateFromIcon($hIcon)
  Local $0=_SetHImage($ID,$hBitmap)+_WinAPI_DeleteObject($hBitmap)+_WinAPI_DestroyIcon($hIcon)
  Return $ID
EndFunc

Источник


Время: 22:21.

Время: 22:21.
© OSzone.net 2001-