Cr�e une ic�ne ou un curseur qui a la taille, les couleurs, et les motifs de bits sp�cifi�s
#include <WinAPIIcons.au3>
_WinAPI_CreateIconIndirect ( $hBitmap, $hMask [, $iXHotspot = 0 [, $iYHotspot = 0 [, $bIcon = True]]] )
$hBitmap | Handle du bitmap ic�ne en couleur. |
$hMask | Handle du bitmap ic�ne masque de bits. |
$iXHotspot | [optionnel] Indique la coordonn�e x du point r�actif du curseur. Si la cr�ation concerne une ic�ne, le point r�actif est toujours au centre de l'ic�ne, et ce param�tre est ignor�. La valeur par d�faut est 0. |
$iYHotspot | [optionnel] Indique la coordonn�e y de point r�actif du curseur. Si la cr�ation concerne une ic�ne, le point r�actif est toujours au centre de l'ic�ne, et ce param�tre est ignor�. La valeur par d�faut est 0. |
$bIcon | [optionnel] Sp�cifie s'il faut cr�er une ic�ne ou un curseur, les valeurs valides sont: True - Cr�e une ic�ne (par d�faut). False - Cr�e un curseur. |
Succ�s: | Retourne le handle de l'ic�ne ou du curseur qui est cr��. |
�chec: | Retourne 0, appelez _WinAPI_GetLastError() pour obtenir des informations sur l'erreur. |
Le syst�me copie les bitmaps avant de cr�er l'ic�ne ou le curseur.
Parce que le syst�me peut s�lectionner temporairement ces bitmaps dans un contexte de p�riph�rique, $hBitmap et $hMask ne doivent pas d�j� �tre s�lectionn�s dans un contexte de p�riph�rique.
L'application doit continuer � g�rer les bitmaps d'origine et les supprimer en utilisant _WinAPI_DeleteObject() quand ils ne sont plus n�cessaires.
Consultez CreateIconIndirect dans la librairie MSDN.
#include <GUIConstantsEx.au3> #include <StaticConstants.au3> #include <WinAPIGdi.au3> #include <WinAPIGdiDC.au3> #include <WinAPIHObj.au3> #include <WinAPIIcons.au3> #include <WinAPIMisc.au3> ; Cr�e XOR bitmap Local $hDC = _WinAPI_GetDC(0) Local $hMemDC = _WinAPI_CreateCompatibleDC($hDC) Local $hXOR = _WinAPI_CreateCompatibleBitmapEx($hDC, 32, 32, 0) Local $hSv = _WinAPI_SelectObject($hMemDC, $hXOR) _WinAPI_SelectObject($hMemDC, _WinAPI_GetStockObject($DC_BRUSH)) _WinAPI_SelectObject($hMemDC, _WinAPI_GetStockObject($NULL_PEN)) Local $tRECT = _WinAPI_CreateRectEx(0, 1, 22, 22) _WinAPI_SetDCBrushColor($hMemDC, 0x0000FF) _WinAPI_Ellipse($hMemDC, $tRECT) _WinAPI_OffsetRect($tRECT, 11, 0) _WinAPI_SetDCBrushColor($hMemDC, 0x00FF00) _WinAPI_Ellipse($hMemDC, $tRECT) _WinAPI_OffsetRect($tRECT, -6, 9) _WinAPI_SetDCBrushColor($hMemDC, 0xFF0000) _WinAPI_Ellipse($hMemDC, $tRECT) _WinAPI_ReleaseDC(0, $hDC) _WinAPI_SelectObject($hMemDC, $hSv) _WinAPI_DeleteDC($hMemDC) ; Cr�e un bitmap AND $hDC = _WinAPI_GetDC(0) $hMemDC = _WinAPI_CreateCompatibleDC($hDC) Local $hAND = _WinAPI_CreateBitmap(32, 32, 1, 1) $hSv = _WinAPI_SelectObject($hMemDC, $hAND) _WinAPI_SelectObject($hMemDC, _WinAPI_GetStockObject($DC_BRUSH)) _WinAPI_SelectObject($hMemDC, _WinAPI_GetStockObject($NULL_PEN)) _WinAPI_SetDCBrushColor($hMemDC, 0xFFFFFF) $tRECT = _WinAPI_CreateRectEx(0, 0, 33, 33) _WinAPI_Rectangle($hMemDC, $tRECT) _WinAPI_SetDCBrushColor($hMemDC, 0) $tRECT = _WinAPI_CreateRectEx(0, 1, 22, 22) _WinAPI_Ellipse($hMemDC, $tRECT) _WinAPI_OffsetRect($tRECT, 11, 0) _WinAPI_Ellipse($hMemDC, $tRECT) _WinAPI_OffsetRect($tRECT, -6, 9) _WinAPI_Ellipse($hMemDC, $tRECT) _WinAPI_ReleaseDC(0, $hDC) _WinAPI_SelectObject($hMemDC, $hSv) _WinAPI_DeleteDC($hMemDC) ; Cr�e une ic�ne Local $hIcon = _WinAPI_CreateIconIndirect($hXOR, $hAND) ; Lib�re les bitmaps _WinAPI_DeleteObject($hXOR) _WinAPI_DeleteObject($hAND) ; Cr�e une GUI GUICreate('Test '& StringReplace(@ScriptName, '.au3', '()'), 128, 128) GUICtrlCreateIcon('', 0, 48, 48, 32, 32) GUICtrlSendMsg(-1, $STM_SETIMAGE, 1, $hIcon) GUISetState(@SW_SHOW) Do Until GUIGetMsg() = $GUI_EVENT_CLOSE