Condividi tramite


Funzione DrawIconEx (winuser.h)

Disegna un'icona o un cursore nel contesto di dispositivo specificato, eseguendo le operazioni raster specificate e estendendo o comprimendo l'icona o il cursore come specificato.

Sintassi

BOOL DrawIconEx(
  [in]           HDC    hdc,
  [in]           int    xLeft,
  [in]           int    yTop,
  [in]           HICON  hIcon,
  [in]           int    cxWidth,
  [in]           int    cyWidth,
  [in]           UINT   istepIfAniCur,
  [in, optional] HBRUSH hbrFlickerFreeDraw,
  [in]           UINT   diFlags
);

Parametri

[in] hdc

Tipo: HDC

Handle per il contesto di dispositivo in cui verrà disegnata l'icona o il cursore.

[in] xLeft

Tipo: int

Coordinata x logica dell'angolo superiore sinistro dell'icona o del cursore.

[in] yTop

Tipo: int

Coordinata y logica dell'angolo superiore sinistro dell'icona o del cursore.

[in] hIcon

Tipo: hicon

Handle per l'icona o il cursore da disegnare. Questo parametro può identificare un cursore animato.

[in] cxWidth

Tipo: int

Larghezza logica dell'icona o del cursore. Se questo parametro è zero e il parametro diFlags è DI_DEFAULTSIZE, la funzione usa il valore della metrica di sistema SM_CXICON per impostare la larghezza. Se questo parametro è zero e non viene usato DI_DEFAULTSIZE, la funzione usa la larghezza effettiva della risorsa.

[in] cyWidth

Tipo: int

Altezza logica dell'icona o del cursore. Se questo parametro è zero e il parametro diFlags è DI_DEFAULTSIZE, la funzione usa il valore della metrica di sistema SM_CYICON per impostare la larghezza. Se questo parametro è zero e non viene usato DI_DEFAULTSIZE, la funzione usa l'altezza effettiva della risorsa.

[in] istepIfAniCur

Tipo: UINT

Indice del frame da disegnare, se hIcon identifica un cursore animato. Questo parametro viene ignorato se hIcon non identifica un cursore animato.

[in, optional] hbrFlickerFreeDraw

Tipo: HBRUSH

Handle di un pennello utilizzato dal sistema per il disegno senza sfarfallio. Se hbrFlickerFreeDraw è un handle di pennello valido, il sistema crea una bitmap fuori schermo usando il pennello specificato per il colore di sfondo, disegna l'icona o il cursore nella bitmap e quindi copia la bitmap nel contesto di dispositivo identificato da hdc. Se hbrFlickerFreeDraw è NULL, il sistema disegna l'icona o il cursore direttamente nel contesto del dispositivo.

[in] diFlags

Tipo: UINT

Flag di disegno. Questo parametro può essere uno dei valori seguenti.

Valore Significato
DI_COMPAT
0x0004
Questo flag viene ignorato.
DI_DEFAULTSIZE
0x0008
Disegna l'icona o il cursore usando la larghezza e l'altezza specificati dai valori delle metriche di sistema per le icone, se i parametri cxWidth e cyWidth sono impostati su zero. Se questo flag non viene specificato e cxWidth e cyWidth vengono impostati su zero, la funzione usa le dimensioni effettive della risorsa.
DI_IMAGE
0x0002
Disegna l'icona o il cursore usando l'immagine. Vedere la sezione Osservazioni.
DI_MASK
0x0001
Disegna l'icona o il cursore utilizzando la maschera. Vedere la sezione Osservazioni.
DI_NOMIRROR
0x0010
Disegna l'icona come icona non visualizzata. Per impostazione predefinita, l'icona viene disegnata come icona con mirroring se hdc viene eseguito il mirroring.
DI_NORMAL
0x0003
Combinazione di DI_IMAGE e DI_MASK. Vedere la sezione Osservazioni.

Valore restituito

Tipo: bool

Se la funzione ha esito positivo, il valore restituito è diverso da zero.

Se la funzione ha esito negativo, il valore restituito è zero. Per ottenere informazioni estese sull'errore, chiamare GetLastError.

Osservazioni

La funzione DrawIconEx posiziona l'angolo superiore sinistro dell'icona nella posizione specificata dai parametri xLeft e yTop. La posizione è soggetta alla modalità di mapping corrente del contesto di dispositivo.

Se viene impostato solo uno dei flag DI_IMAGE e DI_MASK, la bitmap corrispondente viene disegnata con il codice dell'operazione rasterSRCCOPY.

Se vengono impostati entrambi i flag DI_IMAGE e DI_MASK:

  • Se l'icona o il cursore è un cursore o un'icona con fusione alfa a 32 bit, l'immagine viene disegnata con AC_SRC_OVERfunzione blend e la maschera viene ignorata.
  • Per tutte le altre icone o cursori, la maschera viene disegnata con il codice dell'operazione raster SRCANDe l'immagine viene disegnata con il codice dell'operazione raster SRCINVERT

Per duplicare DrawIcon (hDC, X, Y, hIcon), chiamare DrawIconEx come indicato di seguito:

DrawIconEx (hDC, X, Y, hIcon, 0, 0, 0, NULL, DI_NORMAL | DI_COMPAT | DI_DEFAULTSIZE); 

Fabbisogno

Requisito Valore
client minimo supportato Windows 2000 Professional [solo app desktop]
server minimo supportato Windows 2000 Server [solo app desktop]
piattaforma di destinazione Finestre
intestazione winuser.h (include Windows.h)
libreria User32.lib
dll User32.dll
set di API ext-ms-win-ntuser-gui-l1-1-0 (introdotto in Windows 8)

Vedere anche

concettuale

CopyImage

DrawIcon

icone

LoadImage

riferimento

bitBlt

AlphaBlend

BLENDFUNCTION