UDF > WinAPIEx > GDI > BitMaps >


_WinAPI_RadialGradientFill

Remplit avec un dégradé radial

#include <WinAPIGdi.au3>
_WinAPI_RadialGradientFill ( $hDC, $iX, $iY, $iRadius, $iRGB1, $iRGB2 [, $fAngleStart = 0 [, $fAngleEnd = 360 [, $fStep = 5]]] )

Paramètres

$hDC Handle du contexte de périphérique.
$iX La coordonnée x du point central, en unités logiques.
$iY La coordonnée y du point central, en unités logiques.
$iRadius Le rayon du cercle de remplissage du dégradé.
$iRGB1 La couleur au point central.
$iRGB2 La couleur sur le bord du cercle.
$fAngleStart [optionnel] L'angle à partir duquel il faut commencer le remplissage, en degrés. Par défaut, 0°.
$fAngleEnd [optionnel] L'angle auquel il faut terminer le remplissage, en degrés. Par défaut, 360°.
$fStep [optionnel] Le pas de remplissage du dégradé, en degrés. Pour la plus grande valeur de ce paramètre, le dégradé sera le meilleur, mais le traitement prendra plus de temps, et vice versa. Par défaut, 5.

Valeur de retour

Succès: Retourne 1.
Échec: Retourne 0.

Remarque

Cette fonction ne remplit pas en dégradé avec la transparence, et n'utilise pas l'anticrénelage.

Exemple

#include <GUIConstantsEx.au3>
#include <SendMessage.au3>
#include <StaticConstants.au3>
#include <WinAPIGdi.au3>
#include <WinAPIGdiDC.au3>
#include <WinAPIHObj.au3>

; Crée une GUI
Local $hForm = GUICreate('Test '& StringReplace(@ScriptName, '.au3', '()'), 400, 400)
Local $idPic = GUICtrlCreatePic('', 0, 0, 400, 400)
Local $hPic = GUICtrlGetHandle($idPic)

; Crée un dégradé
Local $hDC = _WinAPI_GetDC($hPic)
Local $hDestDC = _WinAPI_CreateCompatibleDC($hDC)
Local $hBitmap = _WinAPI_CreateCompatibleBitmapEx($hDC, 400, 400, 0xFFFFFF)
Local $hDestSv = _WinAPI_SelectObject($hDestDC, $hBitmap)
For $i = 0 To 315 Step 45
    _WinAPI_RadialGradientFill($hDestDC, 200, 200, 180, Random(0, 0xFFFFFF, 1), 0xFFFFFF, $i, $i + 45)
Next
_WinAPI_ReleaseDC($hPic, $hDC)
_WinAPI_SelectObject($hDestDC, $hDestSv)
_WinAPI_DeleteDC($hDestDC)

; Définit le dégradé dans le contrôle Picture
_SendMessage($hPic, $STM_SETIMAGE, 0, $hBitmap)
Local $hObj = _SendMessage($hPic, $STM_GETIMAGE)
If $hObj <> $hBitmap Then
    _WinAPI_DeleteObject($hBitmap)
EndIf

GUISetState(@SW_SHOW)

Do
Until GUIGetMsg() = $GUI_EVENT_CLOSE