Crée un stylo logique qui a le style, la largeur et la couleur donnés
#include <WinAPIGdi.au3>
_WinAPI_CreatePen ( $iPenStyle, $iWidth, $iColor )
$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) |
Succès: | Retourne une valeur HPEN qui identifie un stylo logique |
Échec: | Retourne 0 |
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.
_WinAPI_DeleteObject, _WinAPI_DrawLine, _WinAPI_GetBkMode, _WinAPI_LineTo, _WinAPI_MoveTo, _WinAPI_SelectObject, _WinAPI_SetBkMode
Consultez CreatePen dans la librairie MSDN.
#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