Fügt einem 32 Bits-pro-Pixel Icon Transparenz hinzu
#include <WinAPIIcons.au3>
_WinAPI_AddIconTransparency ( $hIcon [, $iPercent = 50 [, $bDelete = False]] )
$hIcon | Das Handle zu einem Quellicon. |
$iPercent | [optional] Ein Wert (in Prozent) welcher angibt um wie viel die Werte des Alphakanals reduziert werden sollen. Wenn dieser Parameter 0 ist, so gibt die Funktion ein vollkommen transparentes Icon zurück. Standard ist 50. |
$bDelete | [optional] Gibt an ob das Icon nach einem erfolgreichen Durchlauf der Funktion gelöscht werden soll, gültige Werte sind: True - Das Icon wird nach einem erfolgreichen Durchlauf gelöscht. False - Nicht löschen, das Icon muss im Nachhinein, wenn die Arbeit damit abgeschlossen ist, selbstständig freigegeben werden (Standard). |
Erfolg: | Das handle zum neu erzeugten Icon. |
Fehler: | 0 und setzt das @error Flag auf ungleich null. |
Diese Funktion funktioniert nur mit 32 Bits-pro-Pixel mit einem Alphakanal (RGB + Alpha) Icons.
Wenn das Quellicon keinen Alphakanal hat, so wird das resultierende Icon dasselbe wie das Quellicon sein. Wenn das Quellicon nicht 32 Bits-pro-Pixel ist, so wird diese Funktion fehlschlagen.
Wenn die Arbeit mit dem Icon abgeschlossen ist, sollte man es mit _WinAPI_DestroyIcon() zerstören.
#include <GUIConstantsEx.au3>
#include <StaticConstants.au3>
#include <WinAPIIcons.au3>
#include <WinAPIShellEx.au3>
Local $hIcon = _WinAPI_Create32BitHICON(_WinAPI_ShellExtractIcon(@SystemDir & '\shell32.dll', 1, 32, 32), 1)
GUICreate('Test ' & StringReplace(@ScriptName, '.au3', '()'), 262, 108)
For $i = 0 To 3
GUICtrlCreateIcon('', 0, 30 + 58 * $i, 38, 32, 32)
GUICtrlSendMsg(-1, $STM_SETIMAGE, 1, _WinAPI_AddIconTransparency($hIcon, 100 - 25 * $i))
Next
_WinAPI_DestroyIcon($hIcon)
GUISetState(@SW_SHOW)
Do
Until GUIGetMsg() = $GUI_EVENT_CLOSE