Repeint le rectangle ou la r�gion sp�cifi� dans la zone client d'une fen�tre
#include <WinAPIGdi.au3>
_WinAPI_RedrawWindow ( $hWnd [, $tRECT = 0 [, $hRegion = 0 [, $iFlags = 5]]] )
$hWnd | Handle de la fen�tre |
$tRect | [optionnel] Structure $tagRECT contenant les coordonn�es du rectangle � repeindre. Ce param�tre est ignor� si le param�tre $hRegion identifie une r�gion. |
$hRegion | [optionnel] Identifie la r�gion � repeindre. Si les param�tres $hRegion et $tRECT sont 0, la zone cliente enti�re est ajout�e � la r�gion � repeindre. |
$iFlags | [optionnel] Sp�cifie les flags de peinture. Ce param�tre peut �tre une combinaison des flags qui invalident ou valident une fen�tre, qui contr�lent la peinture, et qui contr�lent les fen�tres qui sont affect�s: $RDW_ERASE - La fen�tre recoit un message WM_ERASEBKGND lorsque la fen�tre est repeinte $RDW_FRAME - Une partie de la zone non cliente de la fen�tre qui a une intersection avec la r�gion repeinte recoit un message WM_NCPAINT. $RDW_INTERNALPAINT - Un message WM_PAINT est post� dans la fen�tre ind�pendamment du fait qu'une portion quelconque de la fen�tre n'est pas valide. $RDW_INVALIDATE - Invalide $tRECT ou $hRegion. Si les deux sont 0, la fen�tre enti�re est invalid�e. $RDW_NOERASE - Supprime les messages $WM_ERASEBKGND en attente $RDW_NOFRAME - Supprime les messages $WM_NCPAINT en attente $RDW_NOINTERNALPAINT - Supprime les messages internes WM_PAINT en attente $RDW_VALIDATE - Valide $tRECT ou $hRegion $RDW_ERASENOW - Les fen�tres affect�es recoivent las messages $WM_NCPAINT et $WM_ERASEBKGND, si n�cessaire, avant le retour de la fonction $RDW_UPDATENOW - Les fen�tres affect�es recoivent les messages $WM_NCPAINT, $WM_ERASEBKGND, et $WM_PAINT, si n�cessaire, avant le retour de la fonction. $RDW_ALLCHILDREN - Inclut les fen�tres enfants dans l'op�ration de peinture $RDW_NOCHILDREN - Exclut les fen�tres enfants de l'op�ration de peinture |
Succ�s: | Retourne True |
�chec: | Retourne False |
Lorsque RedrawWindow est utilis� pour invalider une partie de la fen�tre du bureau, la fen�tre du bureau ne re�oit pas de message $WM_PAINT.
Pour repeindre le bureau une application utilise le flag $RDW_ERASE pour g�n�rer un message $WM_ERASEBKGND.
Les constantes ci-dessus n�cessitent WindowsConstants.au3
Consultez RedrawWindow 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