UDF > WinAPIEx > GDI > Brush & Pen >


_WinAPI_CreatePen

Crée un stylo logique qui a le style, la largeur et la couleur donnés

#include <WinAPIGdi.au3>
_WinAPI_CreatePen ( $iPenStyle, $iWidth, $iColor )

Paramètres

$iPenStyle Indique le style de crayon. Peut prendre l'une quelconque des valeurs suivantes.
PS_SOLID - Le sylo dessine une ligne continue.
PS_DASH - Le stylo dessine des tirets. Ce style est valide uniquement lorsque la largeur du stylo est un ou moins dans les unités du périphérique.
PS_DOT - Le stylo dessine des pointillés. Ce style est valide uniquement lorsque la largeur du stylo est un ou moins dans les unités du périphérique.
PS_DASHDOT - Le stylo dessine une alternance de tirets et de points. Ce style est valide uniquement lorsque la largeur du stylo est un ou moins dans les unités du périphérique.
PS_DASHDOTDOT - Le stylo dessine une alternance de tirets et de points doubles. Ce style est valide uniquement lorsque la largeur du stylo est un ou moins dans les unités du périphérique.
PS_NULL - Le stylo dessine une ligne invisible.
PS_INSIDEFRAME - Le stylo est solide. Lorsque ce stylo est utilisé dans une fonction de dessin GDI qui prend un rectangle de délimitation, les dimensions de la figure sont réduites de sorte qu'il s'adapte entièrement dans le rectangle de délimitation, en tenant compte de la largeur du stylo. Cela s'applique uniquement aux stylos géométriques.
$iWidth Indique la largeur du stylo, en unités logiques.
$iColor Indique la couleur du stylo (BGR)

Valeur de retour

Succès: Retourne une valeur HPEN qui identifie un stylo logique
Échec: Retourne 0

Remarques

Le stylo peut ensuite être sélectionnée dans un contexte de périphérique et être utilisé pour dessiner des lignes et des courbes.
Après qu'une application a créé un stylo logique, elle peut choisir ce stylo dans un contexte de périphérique en appelant la fonction _WinAPI_SelectObject(). Après qu'un stylo soit sélectionné dans un contexte de périphérique, il peut être utilisé pour tracer des lignes et des courbes.
Si la valeur spécifiée par le paramètre $iWidth est zéro, une ligne tracée avec ce stylo créé est toujours d'un seul pixel de large, indépendamment de la transformation en cours.
Si la valeur spécifiée par $iWidth est supérieur à 1, le paramètre $iPenStyle doit être PS_NULL, PS_SOLID, ou PS_INSIDEFRAME.
Lorsque vous n'avez plus besoin du stylo, appelez la fonction DeleteObject pour le supprimer.

En relation

_WinAPI_DeleteObject, _WinAPI_DrawLine, _WinAPI_GetBkMode, _WinAPI_LineTo, _WinAPI_MoveTo, _WinAPI_SelectObject, _WinAPI_SetBkMode

Voir aussi

Consultez CreatePen dans la librairie MSDN.

Exemple

#include <WinAPIGdi.au3>
#include <WinAPIGdiDC.au3>
#include <WinAPIHObj.au3>
#include <WinAPISysWin.au3>
#include <WindowsConstants.au3>

ShowCross(@DesktopWidth / 2, @DesktopHeight / 2, 20, 2, 0xFF, 3000)

Func ShowCross($iStart_x, $iStart_y, $iLength, $iWidth, $iColor, $iTime)
    Local $hDC, $hPen, $o_Orig

    $hDC = _WinAPI_GetWindowDC(0) ; DC de tout l'écran (bureau)
    $hPen = _WinAPI_CreatePen($PS_SOLID, $iWidth, $iColor)
    $o_Orig = _WinAPI_SelectObject($hDC, $hPen)

    _WinAPI_DrawLine($hDC, $iStart_x - $iLength, $iStart_y, $iStart_x - 5, $iStart_y) ; gauche horizontal
    _WinAPI_DrawLine($hDC, $iStart_x + $iLength, $iStart_y, $iStart_x + 5, $iStart_y) ; droite horizontal
    _WinAPI_DrawLine($hDC, $iStart_x, $iStart_y - $iLength, $iStart_x, $iStart_y - 5) ; Haut vertical
    ; _WinAPI_DrawLine ($HDC, $iStart_x, $iStart_y + $iLength, $iStart_x, $iStart_y + 5); Bas vertical
    _WinAPI_MoveTo($hDC, $iStart_x, $iStart_y + $iLength)
    _WinAPI_LineTo($hDC, $iStart_x, $iStart_y + 5)

    Sleep($iTime) ; Affiche la croix sur l'écran pendant quelques secondes

    ; Rafraîchit le bureau (efface la croix)
    _WinAPI_RedrawWindow(_WinAPI_GetDesktopWindow(), 0, 0, $RDW_INVALIDATE + $RDW_ALLCHILDREN)

    ; Nettoie les ressources
    _WinAPI_SelectObject($hDC, $o_Orig)
    _WinAPI_DeleteObject($hPen)
    _WinAPI_ReleaseDC(0, $hDC)
EndFunc   ;==>ShowCross