Erzeugt ein Icon durch Verschmelzung des Quellicons und der Überlagsmaske
#include <WinAPIGdi.au3>
_WinAPI_AddIconOverlay ( $hIcon, $hOverlay )
$hIcon | Das Handle zu einem Quellicon. |
$hOverlay | Das Handle zu einem Icon welches als Überlagsmaske verwendet werden soll. |
Erfolg: | Das Handle zum neu erzeugten Icon. |
Fehler: | 0 und setzt das @error Flag auf ungleich null. |
Das Quell- und Überlagsicon müssen die selbe Größe haben, können jedoch eine unterschiedliche Farbtiefe haben.
Diese Funktion wandelt intern die angegebenen Icons in 32 Bits-pro-Pixel Icon um.
Wenn die Arbeit mit dem Icon abgeschlossen ist, sollte man es mit _WinAPI_DestroyIcon() zerstören.
#include <GUIConstantsEx.au3>
#include <StaticConstants.au3>
#include <WinAPIGdi.au3>
#include <WinAPIIcons.au3>
#include <WinAPIShellEx.au3>
#include <WinAPISys.au3>
; Erstellt ein Icon mit einer Overlaymaske (48x48)
Local $hIcon = _WinAPI_ShellExtractIcon(@SystemDir & '\shell32.dll', 1, 32, 32)
Local $hOverlay
If Number(_WinAPI_GetVersion()) >= 6.0 Then
$hOverlay = _WinAPI_ShellExtractIcon(@SystemDir & '\imageres.dll', 154, 32, 32)
Else
$hOverlay = _WinAPI_ShellExtractIcon(@SystemDir & '\shell32.dll', 29, 32, 32)
EndIf
Local $hResult = _WinAPI_AddIconOverlay($hIcon, $hOverlay)
_WinAPI_DestroyIcon($hIcon)
_WinAPI_DestroyIcon($hOverlay)
; Erstellt eine GUI
GUICreate('Test ' & StringReplace(@ScriptName, '.au3', '()'), 128, 128)
GUICtrlCreateIcon('', 0, 48, 48, 32, 32)
GUICtrlSendMsg(-1, $STM_SETIMAGE, 1, $hResult)
GUISetState(@SW_SHOW)
Do
Until GUIGetMsg() = $GUI_EVENT_CLOSE