Condividi tramite


Disegno di immagini da un elenco di immagini

Per disegnare un'immagine, usare la funzione membro CImageList::D raw . Si specificherà un puntatore a un oggetto di contesto di dispositivo, l'indice dell'immagine da disegnare, la posizione nel contesto di dispositivo su cui disegnare l'immagine e un set di flag per indicare lo stile del disegno.

Quando si specifica lo stile ILD_TRANSPARENT , Draw usa un processo in due passaggi per disegnare un'immagine mascherata. Innanzitutto, esegue un'operazione AND logica sui bit dell'immagine e sui bit della maschera. Esegue un'operazione XOR logica sui risultati della prima operazione e sui bit di sfondo del contesto del dispositivo di destinazione. Questo processo consente di creare aree trasparenti nell'immagine risultante; ovvero ogni bit bianco nella maschera rende trasparente il bit corrispondente nell'immagine.

Prima di disegnare un'immagine mascherata su uno sfondo a tinta unita, è necessario utilizzare la funzione membro SetBkColor per impostare il colore di sfondo dell'elenco di immagini sullo stesso colore della destinazione. L'impostazione del colore elimina la necessità di creare aree trasparenti nell'immagine e consente di Draw copiare semplicemente l'immagine nel contesto del dispositivo di destinazione, con conseguente aumento significativo delle prestazioni. Per disegnare l'immagine, specificare lo stile ILD_NORMAL quando si chiama Draw.

È possibile impostare il colore di sfondo per un elenco di immagini mascherate (CImageList) in qualsiasi momento in modo da disegnare correttamente su qualsiasi sfondo a tinta unita. Se si imposta il colore di sfondo su CLR_NONE , le immagini vengono disegnate in modo trasparente per impostazione predefinita. Per recuperare il colore di sfondo di un elenco di immagini, utilizzare la funzione membro GetBkColor .

Gli stili ILD_BLEND25 e ILD_BLEND50 dither l'immagine con il colore di evidenziazione del sistema. Questi stili sono utili se si utilizza un'immagine mascherata per rappresentare un oggetto che l'utente può selezionare. Ad esempio, è possibile usare lo stile ILD_BLEND50 per disegnare l'immagine quando l'utente lo seleziona.

Un'immagine non mascherata viene copiata nel contesto del dispositivo di destinazione usando l'operazione SRCCOPY raster. I colori dell'immagine hanno lo stesso aspetto indipendentemente dal colore di sfondo del contesto del dispositivo. Anche gli stili di disegno specificati in Draw non hanno alcun effetto sull'aspetto di un'immagine non mascherata.

Oltre alla funzione membro Draw, un'altra funzione DrawIndirect estende la possibilità di eseguire il rendering di un'immagine. DrawIndirect accetta, come parametro, una struttura IMAGELISTDRAWPARAMS . Questa struttura può essere utilizzata per personalizzare il rendering dell'immagine corrente, incluso l'utilizzo dei codici di operazione raster (ROP). Per altre informazioni sui codici ROP, vedere Raster Operation Codes and Bitmaps as Brushes in Windows SDK .For more information on ROP codes, see Raster Operation Codes and Bitmaps as Brushes in The Windows SDK.

Vedi anche

Uso di CImageList
Controlli