Sélectionne un objet dans le contexte de périphérique spécifié
#include <WinAPIHObj.au3>
_WinAPI_SelectObject ( $hDC, $hGDIObj )
$hDC | Identifie le contexte de périphérique |
$hGDIObj | Identifie l'objet à sélectionner |
Succès: | Retourne le handle de l'objet replacé |
Échec: | Retourne une valeur <= 0 |
_WinAPI_CreatePen, _WinAPI_DrawLine, _WinAPI_GetBkMode, _WinAPI_LineTo, _WinAPI_MoveTo, _WinAPI_SetBkMode
Consultez SelectObject 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