UDF > WinAPIEx > GDI > BitMaps >


_WinAPI_GradientFill

Remplit un rectangle ou un triangle en d�grad�

#include <WinAPIGdi.au3>
_WinAPI_GradientFill ( $hDC, Const ByRef $aVertex [, $iStart = 0 [, $iEnd = -1 [, $bRotate = False]]] )

Param�tres

$hDC Handle du contexte de p�riph�rique.
$aVertex Le tableau 2D ([x1, y1, $iRGB1], [x2, y2, $iRGB2],..., [xN, yN, $iRGBN]) qui contient les sommets n�cessaires au d�grad�. Chaque sommet dans ce tableau contient les param�tres suivants.
x - La coordonn�e x, en unit�s logiques.
y - La coordonn�e y, en unit�s logiques
rgb - Les informations de couleur au point (x, y).
$iStart [optionnel] L'index du tableau contenant le point o� commencer le remplissage.
$iEnd [optionnel] L'index du tableau contenant le point o� terminer le remplissage.
$bRotate [optionnel] Sp�cifie s'if faut remplir le rectangle du bord gauche au bord droit (d�grad� horizontal).
    $bRotate est utilis� seulement pour les d�grad�s de rectangle, pour les d�grad�s de triangle ce param�tre sera ignor�,
    Valeurs valides:
        True - Remplit de gauche � droite.
        False - Remplit de haut en bas (par d�faut).

Valeur de retour

Succ�s: Retourne 1.
�chec: Retourne 0.

Remarques

Si le nombre de sommets d�fini en utilisant des param�tres $iStart et $iEnd est 2, la fonction _WinAPI_GradientFill() remplit un rectangle. Si le nombre de sommets est �gal � 3, elle remplit un triangle.
Pour le rectangle, les sommets doivent sp�cifier son coin sup�rieur gauche et inf�rieur droit.
Notez que le tableau $aVertex peut contenir un nombre quelconque de sommets de d�grad�, mais seulement deux ou trois sommets peuvent �tre utilis�s en m�me temps � partir du tableau.
Sinon, la fonction est �choue.

La fonction _WinAPI_GradientFill() peut seulement remplir un rectangle ou un triangle par appel. Utilisez plusieurs appels de cette fonction pour remplir des d�grad�s complexes.

Voir aussi

Consultez GdiGradientFill dans la librairie MSDN.

Exemple

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

Local $aVertex[6][3] = [[0, 0, 0xFF0000],[400, 400, 0x00FF00],[0, 400, 0x0000FF],[0, 0, 0xFF0000],[400, 0, 0xFFFF00],[400, 400, 0x00FF00]]

; 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_CreateCompatibleBitmap($hDC, 400, 400)
Local $hDestSv = _WinAPI_SelectObject($hDestDC, $hBitmap)
_WinAPI_GradientFill($hDestDC, $aVertex, 0, 2)
_WinAPI_GradientFill($hDestDC, $aVertex, 3, 5)

_WinAPI_ReleaseDC($hPic, $hDC)
_WinAPI_SelectObject($hDestDC, $hDestSv)
_WinAPI_DeleteDC($hDestDC)

; D�finit le d�grad� du contr�le $hPic
_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