Obtient la valeur d'une propriété couleur
#include <WinAPITheme.au3>
_WinAPI_GetThemeColor ( $hTheme, $iPartID, $iStateID, $iPropID )
$hTheme | Handle de données du thème de fenêtre spécifié. |
$iPartID | La partie qui contient la propriété de couleur. |
$iStateID | L'état de la partie. |
$iPropID | La propriété souhaitée ($TMT_*). |
Succès: | Retourne la valeur de la couleur, en RVB. |
Échec: | Définit @error <>, @extended peut contenir le code d'erreur HRESULT. |
Consultez GetThemeColor dans la librairie MSDN.
#include <APIThemeConstants.au3> #include <GUIConstantsEx.au3> #include <WinAPIGdi.au3> #include <WinAPISysWin.au3> #include <WinAPITheme.au3> #include <WindowsConstants.au3> Local $hForm = GUICreate('Test '& StringReplace(@ScriptName, '.au3', '()'), 400, 400) GUISetFont(8.5, 400, 0, 'MS Shell Dlg', $hForm) Local $idButton = GUICtrlCreateButton('Set Theme Color', 140, 368, 115, 23) GUICtrlCreateTab(7, 7, 388, 354) GUICtrlCreateTabItem('About') Local $idSlider = GUICtrlCreateSlider(20, 45, 360, 26) GUICtrlCreateTabItem('') GUISetState(@SW_SHOW) Local $iMsg = GUIGetMsg() While $iMsg <> $GUI_EVENT_CLOSE If $iMsg = $idButton Then GUICtrlSetBkColor($idSlider, _GetTabBodyColor($hForm)) GUICtrlSetState($idButton, $GUI_DISABLE) EndIf $iMsg = GUIGetMsg() WEnd Func _GetTabBodyColor($hForm) Local $iDefault = _WinAPI_SwitchColor(_WinAPI_GetSysColor($COLOR_3DFACE)) Local $hTheme = _WinAPI_OpenThemeData($hForm, 'TAB') If @error Then Return $iDefault EndIf Local $iPart Switch @OSVersion Case 'WIN_XP', 'WIN_2003' $iPart = 10 ; TABP_BODY Case Else $iPart = 11 ; TABP_AEROWIZARDBODY EndSwitch Local $iColor = _WinAPI_GetThemeColor($hTheme, $iPart, 1, $TMT_FILLCOLORHINT) _WinAPI_CloseThemeData($hTheme) If $iColor < 0 Then Return $iDefault EndIf Return $iColor EndFunc ;== >_GetTabBodyColor