Hy, hab mal wieder eine Frage!
Hab mich scho seit einiger zeit umgesehen, und konnte leider nichts passendes zu meinem Thema finden. Es wurde viel über Icons geschrieben, doch nichts trifft so wirklich auf mein Problem zu.....
Ich möchte nur ein paar Icons in mein Programm einfügen, schaffe es jedoch nicht den Hintergrund transparent zu bekommen!
Kann es sein, dass es an den "Button_AddIcon" - Funktionen liegt?
[autoit][/autoit][autoit][/autoit][autoit]#include <GUIConstants.au3>
#include <file.au3>
#include <array.au3>
#Include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
#include <StaticConstants.au3>
#include <TabConstants.au3>
Global Const $ILC_MASK = 0x0001
Global Const $ILC_COLOR32 = 0x0020
Global Const $BCM_FIRST = 0x1600
Global Const $BCM_SETIMAGELIST = $BCM_FIRST + 0x0002
Global Const $BUTTON_IMAGELIST_ALIGN_LEFT= 0
Global Const $BUTTON_IMAGELIST_ALIGN_RIGHT= 1
Global Const $BUTTON_IMAGELIST_ALIGN_TOP= 2
Global Const $BUTTON_IMAGELIST_ALIGN_BOTTOM= 3
Global Const $BUTTON_IMAGELIST_ALIGN_CENTER= 4
$hgui = GUICreate("Manager", 440, 505 )
[/autoit][autoit][/autoit][autoit]$but1 = GUICtrlCreateButton("...", 20, 10, 100,80)
Button_AddIcon($but1, "...ic1.ico","",$BUTTON_IMAGELIST_ALIGN_bottom)
GUICtrlSetFont(-1, 8, 700)
$but2 = GUICtrlCreateButton (" ...", 120, 10, 100,80)
Button_AddIcon($but2, "...ic2.ico","",$BUTTON_IMAGELIST_ALIGN_bottom)
GUICtrlSetFont(-1, 8, 700)
$but3 = GUICtrlCreateButton ("...", 220, 10, 100,80)
Button_AddIcon($but3, "...ic3.ico","",$BUTTON_IMAGELIST_ALIGN_bottom)
GUICtrlSetFont(-1, 8, 700)
$but4 = GUICtrlCreateButton ("...", 320, 10, 100,80)
Button_AddIcon($but4, "...ic4.ico","",$BUTTON_IMAGELIST_ALIGN_bottom)
GUICtrlSetFont(-1, 8, 700)
$tab = GuiCtrlCreateTab( 20, 100, 400, 350 )
[/autoit][autoit][/autoit][autoit][/autoit][autoit]GuiCtrlCreateTabItem(" Home")
[/autoit][autoit][/autoit][autoit]GUICtrlCreatePic("...\_drive.jpg",60,150,64,64)
[/autoit][autoit][/autoit][autoit]GUICtrlCreateIcon("..._folder.ico",-1, 340, 355, 64, 64, 0)
[/autoit][autoit][/autoit][autoit][/autoit][autoit]GuiCtrlCreateTabItem(" Start ")
[/autoit][autoit][/autoit][autoit]GUICtrlCreatePic("...\_drive.jpg",60,150,64,64)
[/autoit][autoit][/autoit][autoit]GUICtrlCreateIcon("..._folder.ico",-1, 340, 355, 64, 64, 0)
[/autoit][autoit][/autoit][autoit][/autoit][autoit]GUISetState()
[/autoit][autoit][/autoit][autoit]While 1
$msg = GUIGetMsg()
Select
Case $msg = $GUI_EVENT_CLOSE
ExitLoop
EndSelect
WEnd
; Funktionen
[/autoit][autoit][/autoit][autoit]Func Button_AddIcon($nID, $sIconFile, $nIconID, $nAlign)
Local $hIL = ImageList_Create(32, 32, BitOr($ILC_MASK, $ILC_COLOR32), 0, 1)
Local $stIcon= DllStructCreate("int")
ExtractIconEx($sIconFile, $nIconID, DllStructGetPtr($stIcon), 0, 1)
ImageList_AddIcon($hIL, DllStructGetData($stIcon, 1))
DestroyIcon(DllStructGetData($stIcon, 1))
Local $stBIL= DllStructCreate("dword;int[4];uint")
[/autoit][autoit][/autoit][autoit]DllStructSetData($stBIL, 1, $hIL)
[/autoit][autoit][/autoit][autoit]DllStructSetData($stBIL, 2, 1, 1)
DllStructSetData($stBIL, 2, 1, 2)
DllStructSetData($stBIL, 2, 1, 3)
DllStructSetData($stBIL, 2, 1, 4)
DllStructSetData($stBIL, 3, $nAlign)
[/autoit][autoit][/autoit][autoit]GUICtrlSendMsg($nID, $BCM_SETIMAGELIST, 0, DllStructGetPtr($stBIL))
EndFunc
Func ImageList_Create($nImageWidth, $nImageHeight, $nFlags, $nInitial, $nGrow)
Local $hImageList = DllCall('comctl32.dll', 'hwnd', 'ImageList_Create', _
'int', $nImageWidth, _
'int', $nImageHeight, _
'int', $nFlags, _
'int', $nInitial, _
'int', $nGrow)
Return $hImageList[0]
EndFunc
Func ImageList_AddIcon($hIml, $hIcon)
Local $nIndex = DllCall('comctl32.dll', 'int', 'ImageList_AddIcon', _
'hwnd', $hIml, _
'hwnd', $hIcon)
Return $nIndex[0]
EndFunc
Func ImageList_Destroy($hIml)
Local $bResult = DllCall('comctl32.dll', 'int', 'ImageList_Destroy', _
'hwnd', $hIml)
Return $bResult[0]
EndFunc
Func ExtractIconEx($sIconFile, $nIconID, $ptrIconLarge, $ptrIconSmall, $nIcons)
Local $nCount = DllCall('shell32.dll', 'int', 'ExtractIconEx', _
'str', $sIconFile, _
'int', $nIconID, _
'ptr', $ptrIconLarge, _
'ptr', $ptrIconSmall, _
'int', $nIcons)
Return $nCount[0]
EndFunc
Func DestroyIcon($hIcon)
Local $bResult = DllCall('user32.dll', 'int', 'DestroyIcon', _
'hwnd', $hIcon)
Return $bResult[0]
EndFunc
Hoffe der "Code- Salat" ist etwas verständlich :wacko: ,