Что нового

Элементы GUI Цвет фона иконки

antiwinforever

Новичок
Сообщения
25
Репутация
0
Доброго времени суток.
Возникла следующая проблема.
Необходимо в окне 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
 
Последнее редактирование:

Andrey_A

Продвинутый
Сообщения
325
Репутация
68
Код:
#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),$hIcon=_Icons_Icon_Extract($sFile,$n,$k,$k),$hBitmap=_Icons_Bitmap_CreateFromIcon($hIcon),$0=_SetHImage($ID,$hBitmap)+_WinAPI_DeleteObject($hBitmap)+_WinAPI_DestroyIcon($hIcon)
  Return $ID
EndFunc
 
Верх