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 )
$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. |
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. |
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.
Consultez SelectClipRgn dans la librairie MSDN.
#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