Définit le tableau composé d'un objet Pen
#include <GDIPlus.au3>
_GDIPlus_PenSetCompound ( $hPen, $aCompounds )
$hPen | Le pointeur de l'objet Pen. |
$aCompounds | An array of compound values: [0] - Nombre de valeurs composées [1] - Valeur composée 1 [2] - Valeur composée 2 [n] - Valeur composée n |
Succès: | Retourne True. |
Échec: | Retourne False et définit @error <> 0, @extended peut contenir le code d'erreur GPSTATUS ($GPID_ERR*). |
Les éléments du tableau doivent être dans l'ordre croissant, compris entre 0 et 1.
Supposons que vous vouliez un crayon pour dessiner deux lignes parallèles où la largeur de la première ligne représente 20% de la largeur du stylo, la largeur de l'espace qui sépare les deux lignes est de 50% de la largeur du stylo, et la largeur de la deuxième ligne est de 30 pour cent de la largeur du stylo.
Commencez par créer un objet Pen et un tableau de valeurs composées.
Vous pouvez ensuite définir le tableau composé en transmettant le tableau avec les valeurs 0.0, 0.2, 0.7 et 1.0 à la fonction _GDIPlus_PenSetCompound.
Consultez GdipSetPenCompoundArray dans la librairie MSDN.
#include <GDIPlus.au3> #include <GUIConstantsEx.au3> Example() Func Example() Local $hGUI = GUICreate("GDI+", 800, 360) GUISetState(@SW_SHOW) _GDIPlus_Startup() Local $hGraphic = _GDIPlus_GraphicsCreateFromHWND($hGUI) _GDIPlus_GraphicsSetSmoothingMode($hGraphic, $GDIP_SMOOTHINGMODE_HIGHQUALITY) _GDIPlus_GraphicsClear($hGraphic, 0xFF000000) Local $hPath = _GDIPlus_PathCreate() Local $hFamily = _GDIPlus_FontFamilyCreate("Arial Black") _GDIPlus_PathAddString($hPath, "AutoIt", _GDIPlus_RectFCreate(10, 25), $hFamily, 0, 205, 0) Local $hBrush = _GDIPlus_BrushCreateSolid(0xF0FFFFFF) Local $hPen = _GDIPlus_PenCreate(0xFF4488FF, 12) _GDIPlus_PenSetLineJoin($hPen, 2) Local $aCompounds[7] $aCompounds[0] = 6 ;nombre d'éléments du tableau composé $aCompounds[1] = 0 ; $aCompounds[2] = 0.3 ;première ligne [0 to 0.3] * PenWidth $aCompounds[3] = 0.55 ; $aCompounds[4] = 0.7 ;seconde ligne [0.55 to 0.7] * PenWidth $aCompounds[5] = 0.9 ; $aCompounds[6] = 1 ;troisième ligne [0.9 to 1] * PenWidth _GDIPlus_PenSetCompound($hPen, $aCompounds) _GDIPlus_GraphicsFillPath($hGraphic, $hPath, $hBrush) _GDIPlus_GraphicsDrawPath($hGraphic, $hPath, $hPen) _GDIPlus_PenSetColor($hPen, 0xFFFF66FF) _GDIPlus_GraphicsDrawRect($hGraphic, 20, 20, 760, 320, $hPen) Do Until GUIGetMsg() = $GUI_EVENT_CLOSE _GDIPlus_FontFamilyDispose($hFamily) _GDIPlus_PathDispose($hPath) _GDIPlus_PenDispose($hPen) _GDIPlus_BrushDispose($hBrush) _GDIPlus_GraphicsDispose($hGraphic) _GDIPlus_Shutdown() EndFunc ;==>Example