Crée un embout personnalisé pour une ligne
#include <GDIPlus.au3>
_GDIPlus_CustomLineCapCreate ( $hPathFill, $hPathStroke [, $iLineCap = 0 [, $nBaseInset = 0]] )
$hPathFill | Handle de l'objet Path qui définit le remplissage de l'embout personnalisé. |
$hPathStroke | Handle de l'objet Path qui définit le contour personnalisé de l'embout. |
$iLineCap | [optionnel] Embout de ligne à utiliser: $GDIP_LINECAPFLAT = l'embout se termine au dernier point de la ligne (valeur par défaut) $GDIP_LINECAPSQUARE = embout carré, le centre du carré est le dernier point de la ligne. Le coté du carré est la largeur de la ligne. $GDIP_LINECAPROUND = embout rond, le centre du cercle est le dernier point de la ligne. Le diamètre du cercle est la largeur de la ligne. $GDIP_LINECAPTRIANGLE = embout triangulaire, la base du triangle est le dernier point de la ligne. La base du triangle est la largeur de la ligne. $GDIP_LINECAPNOANCHOR = extrémité de la ligne n'est pas ancré. $GDIP_LINECAPSQUAREANCHOR = extrémité ancrée sur un carré. Le centre du carré est le dernier point de la ligne. Le coté du carré est la largeur de la ligne. $GDIP_LINECAPROUNDANCHOR = extrémité ancrée sur un cercle. Le centre du cercle est le dernier point de la ligne. Le cercle est plus large que la ligne. $GDIP_LINECAPDIAMONDANCHOR = extrémité ancrée sur un losange (un carré tourné à 45°). Le centre du losange est le dernier point de la ligne. Le losange est plus large que la ligne. $GDIP_LINECAPARROWANCHOR = extrémité ancrée sur un embout de flèche. L'embout est située au dernier point de la ligne et il est plus large que la ligne. $GDIP_LINECAPCUSTOM = extrémité fabriquée avec CustomLineCap. |
$nBaseInset | [optionnel] Distance entre la base de l'embout et l'extrémité de la ligne. L'unité est l'épaisseur du crayon. |
Succès: | Retourne le handle de l'objet créé. |
Échec: | Retourne 0 et définit @error <> 0, @extended contient le code d'erreur GPSTATUS (GDIP_ERR*). |
Les paramètres $hPathFill et $hPathStroke ne peuvent pas être utilisés en même temps. Vous devez passer 0 à l'un de ces deux paramètres. Si vous passez des valeurs non nulles pour les deux paramètres, $PathFill est ignoré.
Styles d'embout de ligne (image issue de GDI+ pour PureBasic):
Cherchez GdipCreateCustomLineCap dans la Library MSDN
#include <GDIPlus.au3> #include <GUIConstantsEx.au3> Example() Func Example() Local $hGUI, $hGraphics, $hPath, $hCustomLineCap, $hClonedLineCap, $hPen Local $avPoints[4][2] = [[3],[-15, -15],[0, 0],[15, -15]] ; Initialisation GDI+ _GDIPlus_Startup() ; Crée un objet Graphics à partir d'un handle fenêtre $hGUI = GUICreate("_GDIPlus_CustomLineCapCreate Example", 400, 200) GUISetState(@SW_SHOW) $hGraphics = _GDIPlus_GraphicsCreateFromHWND($hGUI) ; Définit pour l'objet graphique la qualité de rendu antialiasing _GDIPlus_GraphicsSetSmoothingMode($hGraphics, $GDIP_SMOOTHINGMODE_HIGHQUALITY) ; Crée GraphicsPath et lui ajoute deux lignes. $hPath = _GDIPlus_PathCreate() _GDIPlus_PathAddLine2($hPath, $avPoints) ; Crée un objet CustomLineCap. $hCustomLineCap = _GDIPlus_CustomLineCapCreate(0, $hPath) ; Crée un objet clone de CustomLineCap. $hClonedLineCap = _GDIPlus_CustomLineCapClone($hCustomLineCap) ; Crée un objet Pen, attribue l'embout cloné comme embout personnalisé, et trace une ligne. $hPen = _GDIPlus_PenCreate(0xFFFF0000) _GDIPlus_PenSetCustomEndCap($hPen, $hClonedLineCap) _GDIPlus_GraphicsDrawLine($hGraphics, 50, 50, 350, 150, $hPen) Do Until GUIGetMsg() = $GUI_EVENT_CLOSE ; Nettoie _GDIPlus_PenDispose($hPen) _GDIPlus_CustomLineCapDispose($hClonedLineCap) _GDIPlus_CustomLineCapDispose($hCustomLineCap) _GDIPlus_PathDispose($hPath) _GDIPlus_GraphicsDispose($hGraphics) ; Arrête GDI+ _GDIPlus_Shutdown() EndFunc ;==>Example