Kleiner Trick mit "SetWindowTheme_" !

Funktioniert aber leider nur ab Windows XP.
XP-Skin-Unterstützung muss "ein" sein !
Lg. Legion
Code: Alles auswählen
Procedure AnsiToUni(Ansistring.s)
Protected LenA,LenW,UnicodeString
LenA = Len(Ansistring)
LenW = MultiByteToWideChar_(#CP_ACP,0,Ansistring,LenA,0,0)
If LenW > 0
UnicodeString = SysAllocStringLen_(0,LenW)
MultiByteToWideChar_(#CP_ACP,0,Ansistring,LenA,UnicodeString,LenW)
Result = UnicodeString
ProcedureReturn result
Else
ProcedureReturn 0
EndIf
EndProcedure
Procedure ExtractLargeIcon(IconNr)
Protected IconId
If ExtractIconEx_("Shell32.dll",IconNr, @IconID,0,1)
ProcedureReturn IconId
Else
ProcedureReturn 0
EndIf
EndProcedure
If OSVersion() >= #PB_OS_Windows_XP
OpenWindow(0,0,0,620, 400, "ButtonToolbar",#PB_Window_SystemMenu|#PB_Window_ScreenCentered)
SetWindowColor(0,$FFFFFF)
CreateGadgetList(WindowID(0))
ContainerGadget(0,0,0,620,50,#PB_Container_Raised)
ButtonImageGadget(1,2,2,40,40,ExtractLargeIcon(4))
ButtonImageGadget(2,45,2,40,40,ExtractLargeIcon(13))
ButtonImageGadget(3,90,2,40,40,ExtractLargeIcon(15))
ButtonImageGadget(4,135,2,40,40,ExtractLargeIcon(16))
ButtonImageGadget(5,180,2,40,40,ExtractLargeIcon(22))
ButtonImageGadget(6,572,2,40,40,ExtractLargeIcon(27))
For i = 1 To 6
SetWindowTheme_(GadgetID(i), 0, AnsiToUni("Toolbar"))
Next i
Repeat
Event = WaitWindowEvent()
WindowID = EventWindow()
GadgetID = EventGadget()
EventType = EventType()
If Event = #PB_Event_Gadget
If GadgetID = 6
Break
Else
Debug GadgetID
EndIf
EndIf
Until Event = #PB_Event_CloseWindow
EndIf