Crée un pinceau à dégradé linéaire à partir d'un rectangle, de deux couleurs limites et d'un angle de direction
#include <GDIPlus.au3>
_GDIPlus_LineBrushCreateFromRectWithAngle ( $tRECTF, $iARGBClr1, $iARGBClr2, $fAngle [, $bIsAngleScalable = True [, $iWrapMode = 0]] )
$tRectF | Structure $tagGDIPRECTF qui définit un rectangle dont le coin supérieur gauche du rectangle est le point de début du dégradé et le coin inférieur droit est le point de fin. |
$iARGBClr1 | Composantes Alpha, Rouge, Vert et Bleu de la couleur de début de la ligne |
$iARGBClr2 | Composantes Alpha, Rouge, Vert et Bleu de la couleur de fin de la ligne |
$fAngle | Angle, mesuré en degrés, dans le sens des aiguilles d'une montre, à partir de l'axe x, de la direction du dégradé (voir Remarques) |
$bIsAngleScalable | [optionnel] Affectez la valeur true afin de spécifier que l'angle est touché par la transformation associée à ce LinearGradientBrush; sinon, false. |
$iWrapMode | [optionnel] Indique comment un dégradé est disposé en mosaïque lorsqu'il est plus petit que la zone à remplir: 0 - Dispose le dégradé en mosaïque, sans symétrie 1 - Retourne le dégradé horizontalement, puis le dispose en mosaïque 2 - Retourne le dégradé verticalement, puis le dispose en mosaïque 3 - Retourne le dégradé horizontalement et verticalement, puis le dispose en mosaïque 4 - Le dégradé n'est pas disposé en mosaïque |
Succès: | Retourne le handle du nouvel objet LinearGradientBrush. |
Échec: | Retourne 0 et définit @error <> 0, @extended contient le code erreur GPSTATUS ($GPID_ERR*). |
Si $fIsAngleScalable est True, $iAngle spécifie l'angle de base à partir duquel l'angle de la ligne directionnelle est calculé pour que les lignes isochromatiques (perpendiculaires à la ligne directionnelle) soient parallèles à la deuxième diagonale du rectangle lorsque $iAngle=45°.
Si $fIsAngleScalable est False, $iAngle spécifie l'angle de la ligne directionnelle sans aucune correction. L'angle est mesuré à partir de la partie supérieure du rectangle et doit être en degrés. Le dégradé suit la ligne directionnelle.
Lorsque vous en avez terminé avec l'objet, appelez _GDIPlus_BrushDispose() pour libérer les ressources de l'objet.
Consultez GdipCreateLineBrushFromRectWithAngle dans la Librairie MSDN.
#include <GDIPlus.au3> #include <GUIConstantsEx.au3> Example() Func Example() Local $hGUI, $hGraphic, $hBrush, $tRectF, $hPen, $fAngle $hGUI = GUICreate("GDI+", 830, 340) GUISetState(@SW_SHOW) _GDIPlus_Startup() $hGraphic = _GDIPlus_GraphicsCreateFromHWND($hGUI) _GDIPlus_GraphicsClear($hGraphic, 0xFFFFFFFF) $fAngle = 45 $tRectF = _GDIPlus_RectFCreate(10, 10, 400, 300) $hBrush = _GDIPlus_LineBrushCreateFromRectWithAngle($tRectF, 0xFF000000, 0xFFFFFFFF, $fAngle, False) _GDIPlus_LineBrushSetSigmaBlend($hBrush, 1) _GDIPlus_GraphicsFillRect($hGraphic, 10, 10, 400, 300, $hBrush) _GDIPlus_BrushDispose($hBrush) $tRectF = _GDIPlus_RectFCreate(420, 10, 400, 300) $hBrush = _GDIPlus_LineBrushCreateFromRectWithAngle($tRectF, 0xFF000000, 0xFFFFFFFF, $fAngle, True) _GDIPlus_LineBrushSetSigmaBlend($hBrush, 1) _GDIPlus_GraphicsFillRect($hGraphic, 420, 10, 400, 300, $hBrush) $hPen = _GDIPlus_PenCreate(0x6F00007F, 2) $fAngle *= 0.01745 _GDIPlus_GraphicsDrawLine($hGraphic, 10, 10, 10 + Cos($fAngle) * 300, 10 + Sin($fAngle) * 300, $hPen) _GDIPlus_GraphicsDrawString($hGraphic, "$bIsAngleScalable = False", 10, 320) $fAngle = ATan((400 / 300) * Tan($fAngle)) _GDIPlus_GraphicsDrawLine($hGraphic, 420, 10, 420 + Cos($fAngle) * 300, 10 + Sin($fAngle) * 300, $hPen) _GDIPlus_GraphicsDrawString($hGraphic, "$bIsAngleScalable = True", 420, 320) ; Boucle jusqu'à ce que l'utilisateur quitte. Do Until GUIGetMsg() = $GUI_EVENT_CLOSE ; Nettoie les ressources _GDIPlus_PenDispose($hPen) _GDIPlus_BrushDispose($hBrush) _GDIPlus_GraphicsDispose($hGraphic) _GDIPlus_Shutdown() EndFunc ;==>Example