UDF > WinAPIEx > GDI > Regions >


_WinAPI_RedrawWindow

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

Param�tres

$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

Valeur de retour

Succ�s: Retourne True
�chec: Retourne False

Remarques

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

En relation

$tagRECT

Voir aussi

Consultez RedrawWindow 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