UDF > WinAPIEx > GDI > Clipping >


_WinAPI_SelectClipRgn

Sélectionne une région en tant que région de découpage actuelle pour le contexte de périphérique spécifié

#include <WinAPIGdi.au3>
_WinAPI_SelectClipRgn ( $hDC, $hRgn )

Paramètres

$hDC Handle du contexte de périphérique.
$hRgn Handle de la région à sélectionner. Pour retirer une région de découpage d'un contexte de périphérique, définissez ce paramètre à 0.

Valeur de retour

Succès: Retourne la valeur qui spécifie la complexité de la nouvelle région de découpage; soit l'une des valeurs suivantes:
$COMPLEXREGION
$NULLREGION
$SIMPLEREGION
Échec: Retourne 0.

Remarque

Seule une copie de la région sélectionnée est utilisée. La région elle-même peut être sélectionnée par un nombre quelconque d'autres contextes de périphériques ou elle peut être supprimée.

Voir aussi

Consultez SelectClipRgn dans la librairie MSDN.

Exemple

#include <GUIConstantsEx.au3>
#include <SendMessage.au3>
#include <StaticConstants.au3>
#include <WinAPIGdi.au3>
#include <WinAPIGdiDC.au3>
#include <WinAPIHObj.au3>
#include <WinAPIMisc.au3>
#include <WinAPISysWin.au3>
#include <WindowsConstants.au3>

; Crée une GUI
Local $hForm = GUICreate('Test '& StringReplace(@ScriptName, '.au3', '()'), 281, 281)
Local $idPic = GUICtrlCreatePic('', 0, 0, 281, 281)
Local $hPic = GUICtrlGetHandle($idPic)

; Crée un bitmap
Local $hDC = _WinAPI_GetDC($hPic)
Local $hMemDC = _WinAPI_CreateCompatibleDC($hDC)
Local $hBitmap = _WinAPI_CreateCompatibleBitmapEx($hDC, 281, 281, _WinAPI_SwitchColor(_WinAPI_GetSysColor($COLOR_3DFACE)))
Local $hMemSv = _WinAPI_SelectObject($hMemDC, $hBitmap)
Local $hRgn = _WinAPI_CreateEllipticRgn(_WinAPI_CreateRectEx(40, 40, 201, 201))
_WinAPI_SelectClipRgn($hMemDC, $hRgn)
Local $aVertex[3][3] = [[140, -50, 0xFFFF00],[-50, 244, 0x00F0FF],[331, 244, 0xFF00FF]]
_WinAPI_GradientFill($hMemDC, $aVertex)
_WinAPI_DeleteObject($hRgn)
_WinAPI_ReleaseDC($hPic, $hDC)
_WinAPI_SelectObject($hMemDC, $hMemSv)
_WinAPI_DeleteDC($hMemDC)

; Définit le bitmap dans le contrôle Picture
_SendMessage($hPic, $STM_SETIMAGE, 0, $hBitmap)
Local $hObj = _SendMessage($hPic, $STM_GETIMAGE)
If $hObj <> $hBitmap Then
    _WinAPI_DeleteObject($hBitmap)
EndIf

GUISetState(@SW_SHOW)

Do
Until GUIGetMsg() = $GUI_EVENT_CLOSE