Ruft den Wert einer Farbeigenschaft ab
#include <WinAPITheme.au3>
_WinAPI_GetThemeColor ( $hTheme, $iPartID, $iStateID, $iPropID )
| $hTheme | Handle zu den angegebenen Themendaten eines Fensters. |
| $iPartID | Der Teil, der die Farbeigenschaft enthält. |
| $iStateID | Der Zustand des Teils. |
| $iPropID | Die abzurufende Eigenschaft ($TMT_*). |
| Erfolg: | Der Farbwert, in RGB. |
| Fehler: | Setzt das @error-Flag auf ungleich 0, @extended-Flag kann den HRESULT-Fehlercode enthalten. |
Suche nach GetThemeColor in der MSDN Bibliothek.
#include <GUIConstantsEx.au3>
#include <WinAPIGdi.au3>
#include <WinAPISysWin.au3>
#include <WinAPITheme.au3>
#include <WindowsSysColorConstants.au3>
Local $hForm = GUICreate('Test ' & StringReplace(@ScriptName, '.au3', '()'), 400, 400)
GUISetFont(8.5, 400, 0, 'MS Shell Dlg', $hForm)
Local $Button = GUICtrlCreateButton('Setzt die Farbe des Themas', 140, 368, 115, 23)
GUICtrlCreateTab(7, 7, 388, 354)
GUICtrlCreateTabItem('About')
Local $Slider = GUICtrlCreateSlider(20, 45, 360, 26)
GUICtrlCreateTabItem('')
GUISetState(@SW_SHOW)
While 1
Switch GUIGetMsg()
Case $GUI_EVENT_CLOSE
ExitLoop
Case $Button
GUICtrlSetBkColor($Slider, _GetTabBodyColor($hForm))
GUICtrlSetState($Button, $GUI_DISABLE)
EndSwitch
WEnd
Func _GetTabBodyColor($hForm)
Local $Default = _WinAPI_SwitchColor(_WinAPI_GetSysColor($COLOR_3DFACE))
Local $hTheme = _WinAPI_OpenThemeData($hForm, 'TAB')
If @error Then
Return $Default
EndIf
Local $Part
Switch @OSVersion
Case 'WIN_XP', 'WIN_2003'
$Part = 10 ; TABP_BODY
Case Else
$Part = 11 ; TABP_AEROWIZARDBODY
EndSwitch
Local $Color = _WinAPI_GetThemeColor($hTheme, $Part, 1, $TMT_FILLCOLORHINT)
_WinAPI_CloseThemeData($hTheme)
If $Color < 0 Then
Return $Default
EndIf
Return $Color
EndFunc ;==>_GetTabBodyColor