UDF > GDIPlus > CustomLineCap >


_GDIPlus_CustomLineCapCreate

Crée un embout personnalisé pour une ligne

#include <GDIPlus.au3>
_GDIPlus_CustomLineCapCreate ( $hPathFill, $hPathStroke [, $iLineCap = 0 [, $nBaseInset = 0]] )

Paramètres

$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.

Valeur de retour

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*).

Remarques

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):

    

Après en avoir terminé avec l'objet, appelez _GDIPlus_CustomLineCapDispose() pour libérer les ressources de l'objet.

En relation

_GDIPlus_CustomLineCapDispose

Voir aussi

Cherchez GdipCreateCustomLineCap dans la Library MSDN

Exemple

#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