Condividi tramite


Classe CImageList

Fornisce la funzionalità del controllo elenco immagini comune di Windows.

Sintassi

class CImageList : public CObject

Membri

Costruttori pubblici

Nome Descrizione
CImageList::CImageList Costruisce un oggetto CImageList.

Metodi pubblici

Nome Descrizione
CImageList::Add Aggiunge un'immagine o immagini a un elenco di immagini.
CImageList::Attach Associa un elenco di immagini a un CImageList oggetto .
CImageList::BeginDrag Inizia a trascinare un'immagine.
CImageList::Copy Copia un'immagine all'interno di un CImageList oggetto .
CImageList::Create Inizializza un elenco di immagini e lo associa a un CImageList oggetto .
CImageList::DeleteImageList Elimina un elenco di immagini.
CImageList::DeleteTempMap Chiamato dal CWinApp gestore tempo di inattività per eliminare qualsiasi oggetto temporaneo CImageList creato da FromHandle.
CImageList::Detach Scollega un oggetto elenco di immagini da un CImageList oggetto e restituisce un handle a un elenco di immagini.
CImageList::DragEnter Blocca gli aggiornamenti durante un'operazione di trascinamento e visualizza l'immagine di trascinamento in una posizione specificata.
CImageList::DragLeave Sblocca la finestra e nasconde l'immagine di trascinamento in modo che la finestra possa essere aggiornata.
CImageList::DragMove Sposta l'immagine trascinata durante un'operazione di trascinamento della selezione.
CImageList::DragShowNolock Mostra o nasconde l'immagine di trascinamento durante un'operazione di trascinamento, senza bloccare la finestra.
CImageList::Draw Disegna l'immagine trascinata durante un'operazione di trascinamento della selezione.
CImageList::DrawEx Disegna una voce di elenco di immagini nel contesto di dispositivo specificato. La funzione usa lo stile di disegno specificato e fonde l'immagine con il colore specificato.
CImageList::DrawIndirect Disegna un'immagine da un elenco di immagini.
CImageList::EndDrag Termina un'operazione di trascinamento.
CImageList::ExtractIcon Crea un'icona basata su un'immagine e una maschera in un elenco di immagini.
CImageList::FromHandle Restituisce un puntatore a un CImageList oggetto quando viene assegnato un handle a un elenco di immagini. Se all'handle non è collegato un oggetto CImageList, viene creato e collegato un oggetto CImageList temporaneo.
CImageList::FromHandlePermanent Restituisce un puntatore a un CImageList oggetto quando viene assegnato un handle a un elenco di immagini. Se un CImageList oggetto non è collegato all'handle, viene restituito NULL.
CImageList::GetBkColor Recupera il colore di sfondo corrente per un elenco di immagini.
CImageList::GetDragImage Ottiene l'elenco di immagini temporanee utilizzato per il trascinamento.
CImageList::GetImageCount Recupera il numero di immagini in un elenco di immagini.
CImageList::GetImageInfo Recupera informazioni su un'immagine.
CImageList::GetSafeHandle m_hImageListRecupera .
CImageList::Read Legge un elenco di immagini da un archivio.
CImageList::Remove Rimuove un'immagine da un elenco di immagini.
CImageList::Replace Sostituisce un'immagine in un elenco di immagini con una nuova immagine.
CImageList::SetBkColor Imposta il colore di sfondo per un elenco di immagini.
CImageList::SetDragCursorImage Crea una nuova immagine di trascinamento.
CImageList::SetImageCount Reimposta il numero di immagini in un elenco di immagini.
CImageList::SetOverlayImage Aggiunge l'indice in base zero di un'immagine all'elenco di immagini da usare come maschere di sovrapposizione.
CImageList::Write Scrive un elenco di immagini in un archivio.

Operatori pubblici

Nome Descrizione
CImageList::operator HIMAGELIST Restituisce l'oggetto HIMAGELIST associato all'oggetto CImageList.

Membri dati pubblici

Nome Descrizione
CImageList::m_hImageList Handle contenente l'elenco di immagini associato a questo oggetto.

Osservazioni:

Un "elenco di immagini" è una raccolta di immagini di stesse dimensioni, ognuna delle quali può essere definita dal relativo indice in base zero. Gli elenchi di immagini vengono usati per gestire in modo efficiente set di icone o bitmap di grandi dimensioni. Tutte le immagini in un elenco di immagini sono contenute in un'unica bitmap estesa in formato dispositivo schermo. Un elenco di immagini può includere anche una bitmap monocromatica che contiene maschere usate per disegnare immagini in modo trasparente (stile icona). L'API (Application Programming Interface) di Microsoft Win32 fornisce funzioni di elenco immagini che consentono di disegnare immagini, creare ed eliminare elenchi di immagini, aggiungere e rimuovere immagini, sostituire immagini, unire immagini e trascinare immagini.

Questo controllo (e quindi la CImageList classe ) è disponibile solo per i programmi in esecuzione in Windows 95/98 e Windows NT versione 3.51 e successive.

Per altre informazioni sull'uso CImageListdi , vedere Controlli e uso di CImageList.

Gerarchia di ereditarietà

CObject

CImageList

Requisiti

Intestazione: afxcmn.h

CImageList::Add

Chiamare questa funzione per aggiungere una o più immagini o un'icona a un elenco di immagini.

int Add(
    CBitmap* pbmImage,
    CBitmap* pbmMask);

int Add(
    CBitmap* pbmImage,
    COLORREF crMask);

int Add(HICON hIcon);

Parametri

pbmImage
Puntatore alla bitmap contenente l'immagine o le immagini. Il numero di immagini viene dedotto dalla larghezza della bitmap.

pbmMask
Puntatore alla bitmap contenente la maschera. Se non viene usata alcuna maschera con l'elenco di immagini, questo parametro viene ignorato.

crMask
Colore utilizzato per generare la maschera. Ogni pixel di questo colore nella bitmap specificata viene modificato in nero e il bit corrispondente nella maschera è impostato su uno.

hIcon
Handle dell'icona che contiene la bitmap e la maschera per la nuova immagine.

Valore restituito

Indice in base zero della prima nuova immagine in caso di esito positivo; in caso contrario - 1.

Osservazioni:

L'utente è responsabile del rilascio dell'handle dell'icona al termine dell'operazione.

Esempio

// Add my icons.
m_myImageList.Add(AfxGetApp()->LoadIcon(IDI_ICON1));
m_myImageList.Add(AfxGetApp()->LoadIcon(IDI_ICON2));

// Add my bitmap, make all black pixels transparent.
CBitmap bm;
bm.LoadBitmap(IDB_BITMAP1);
m_myImageList.Add(&bm, RGB(0, 0, 0));

CImageList::Attach

Chiamare questa funzione per allegare un elenco di immagini a un CImageList oggetto .

BOOL Attach(HIMAGELIST hImageList);

Parametri

hImageList
Handle per un oggetto elenco di immagini.

Valore restituito

Diverso da zero se l'allegato ha avuto esito positivo; in caso contrario, 0.

Esempio

void AddQuestion(HIMAGELIST hmyImageList)
{
   CImageList imgList;

   // Attach the image list handle to the CImageList object.
   imgList.Attach(hmyImageList);

   // Add a new icon to the image list.
   imgList.Add(AfxGetApp()->LoadStandardIcon(IDI_QUESTION));

   // Detach the handle from the CImageList object.
   imgList.Detach();
}

CImageList::BeginDrag

Chiamare questa funzione per iniziare a trascinare un'immagine.

BOOL BeginDrag(
    int nImage,
    CPoint ptHotSpot);

Parametri

nImage
Indice in base zero dell'immagine da trascinare.

ptHotSpot
Coordinate della posizione di trascinamento iniziale (in genere, la posizione del cursore). Le coordinate sono relative all'angolo superiore sinistro dell'immagine.

Valore restituito

Diverso da zero se ha esito positivo; in caso contrario 0.

Osservazioni:

Questa funzione crea un elenco di immagini temporanee utilizzato per il trascinamento. L'immagine combina l'immagine specificata e la relativa maschera con il cursore corrente. In risposta ai messaggi successivi WM_MOUSEMOVE , è possibile spostare l'immagine di trascinamento usando la DragMove funzione membro. Per terminare l'operazione di trascinamento, è possibile usare la EndDrag funzione membro.

Esempio

void CImageListDlg::OnLButtonDown(UINT nFlags, CPoint point)
{
   // Initialize the drag image (usually called from WM_LBUTTONDOWN).
   m_myImageList.BeginDrag(0, CPoint(0, 0));
   m_myImageList.DragEnter(this, point);

   CDialog::OnLButtonDown(nFlags, point);
}

CImageList::CImageList

Costruisce un oggetto CImageList.

CImageList();

CImageList::Copy

Questa funzione membro implementa il comportamento della funzione ImageList_CopyWin32 , come descritto in Windows SDK.

BOOL Copy(
    int iDst,
    int iSrc,
    UINT uFlags = ILCF_MOVE);

BOOL Copy(
    int iDst,
    CImageList* pSrc,
    int iSrc,
    UINT uFlags = ILCF_MOVE);

Parametri

iDst
Indice in base zero dell'immagine da usare come destinazione dell'operazione di copia.

iSrc
Indice in base zero dell'immagine da usare come origine dell'operazione di copia.

uFlags
Valore del flag di bit che specifica il tipo di operazione di copia da eseguire. Questo parametro può avere uno dei valori seguenti:

Valore Significato
ILCF_MOVE L'immagine di origine viene copiata nell'indice dell'immagine di destinazione. Questa operazione comporta più istanze di una determinata immagine. ILCF_MOVE è l'impostazione predefinita.
ILCF_SWAP Le immagini di origine e di destinazione scambiano posizioni all'interno dell'elenco di immagini.

pSrc
Puntatore a un CImageList oggetto che rappresenta la destinazione dell'operazione di copia.

Valore restituito

Diverso da zero se ha esito positivo; in caso contrario 0.

Esempio

CImageList myImageList2;
myImageList2.Create(32, 32, ILC_COLOR8, 0, 4);

// Copy the first image from myImageList2 and make it
// the first image of m_myImageList.
m_myImageList.Copy(0, &myImageList2, 0, ILCF_MOVE);

// Recopy the image to make it also the last image in m_myImageList.
m_myImageList.Copy(m_myImageList.GetImageCount() - 1, (int)0,
                   (UINT)ILCF_MOVE);

CImageList::Create

Inizializza un elenco di immagini e lo associa a un CImageList oggetto .

BOOL Create(
    int cx,
    int cy,
    UINT nFlags,
    int nInitial,
    int nGrow);

BOOL Create(
    UINT nBitmapID,
    int cx,
    int nGrow,
    COLORREF crMask);

BOOL Create(
    LPCTSTR lpszBitmapID,
    int cx,
    int nGrow,
    COLORREF crMask);

BOOL Create(
    CImageList& imagelist1,
    int nImage1,
    CImageList& imagelist2,
    int nImage2,
    int dx,
    int dy);

BOOL Create(CImageList* pImageList);

Parametri

cx
Dimensioni di ogni immagine, in pixel.

cy
Dimensioni di ogni immagine, in pixel.

nFlags
Specifica il tipo di elenco di immagini da creare. Questo parametro può essere una combinazione dei valori seguenti, ma può includere solo uno dei ILC_COLOR valori.

Valore Significato
ILC_COLOR Usare il comportamento predefinito se non è specificato nessuno degli altri ILC_COLOR* flag. In genere, il valore predefinito è ILC_COLOR4; ma per i driver di visualizzazione meno recenti, il valore predefinito è ILC_COLORDDB.
ILC_COLOR4 Usare una sezione bitmap indipendente dal dispositivo (DIB) a 4 bit (16 colori) come bitmap per l'elenco di immagini.
ILC_COLOR8 Usare una sezione DIB a 8 bit. I colori utilizzati per la tabella dei colori sono gli stessi colori della tavolozza della mezzatona.
ILC_COLOR16 Usare una sezione DIB a 16 bit (colore 32/64k).
ILC_COLOR24 Usare una sezione DIB a 24 bit.
ILC_COLOR32 Usare una sezione DIB a 32 bit.
ILC_COLORDDB Usare una bitmap dipendente dal dispositivo.
ILC_MASK Usa una maschera. L'elenco di immagini contiene due bitmap, una delle quali è una bitmap monocromatica usata come maschera. Se questo valore non è incluso, l'elenco di immagini contiene una sola bitmap. Per altre informazioni sulle immagini mascherate, vedere Disegno di immagini da un elenco di immagini.

nInitial
Numero di immagini che l'elenco di immagini contiene inizialmente.

nGrow
Numero di immagini in base alle quali l'elenco di immagini può aumentare quando il sistema deve ridimensionare l'elenco per liberare spazio per le nuove immagini. Questo parametro rappresenta il numero di nuove immagini che l'elenco di immagini ridimensionate può contenere.

nBitmapID
ID risorsa della bitmap da associare all'elenco di immagini.

crMask
Colore utilizzato per generare una maschera. Ogni pixel di questo colore nella bitmap specificata viene modificato in nero e il bit corrispondente nella maschera è impostato su uno.

lpszBitmapID
Stringa contenente gli ID risorsa delle immagini.

imagelist1
Riferimento a un oggetto CImageList.

nImage1
Indice della prima immagine esistente.

imagelist2
Riferimento a un oggetto CImageList.

nImage2
Indice della seconda immagine esistente.

dx
Offset dell'asse x della seconda immagine in relazione alla prima immagine, in pixel.

dy
Offset dell'asse y della seconda immagine in relazione alla prima immagine, in pixel.

pImageList
Puntatore a un oggetto CImageList.

Valore restituito

Diverso da zero se ha esito positivo; in caso contrario 0.

Osservazioni:

Si costruisce un oggetto CImageList in due passaggi. Prima di tutto, chiamare il costruttore e quindi chiamare Create, che crea l'elenco di immagini e lo associa all'oggetto CImageList .

Esempio

m_myImageList.Create(32, 32, ILC_COLOR8, 0, 4);

CImageList::DeleteImageList

Chiamare questa funzione per eliminare un elenco di immagini.

BOOL DeleteImageList();

Valore restituito

Diverso da zero se ha esito positivo; in caso contrario 0.

Esempio

// Delete the image list and verify.
myImageList2.DeleteImageList();
ASSERT(myImageList2.GetSafeHandle() == NULL);

CImageList::DeleteTempMap

Chiamato automaticamente dal CWinApp gestore tempo di inattività, DeleteTempMap elimina tutti gli oggetti temporanei CImageList creati da FromHandle, ma non elimina temporaneamente gli handle ( hImageList) associati temporaneamente agli ImageList oggetti .

static void PASCAL DeleteTempMap();

Esempio

// Note that this is a static member so an instantiated CImageList
// object is unnecessary.
CImageList::DeleteTempMap();

CImageList::Detach

Chiamare questa funzione per scollegare un oggetto elenco di immagini da un CImageList oggetto .

HIMAGELIST Detach();

Valore restituito

Handle per un oggetto elenco di immagini.

Osservazioni:

Questa funzione restituisce un handle all'oggetto elenco di immagini.

Esempio

Vedere l'esempio per CImageList::Attach.

CImageList::DragEnter

Durante un'operazione di trascinamento, blocca gli aggiornamenti alla finestra specificata da pWndLock e visualizza l'immagine di trascinamento nella posizione specificata da point.

static BOOL PASCAL DragEnter(
    CWnd* pWndLock,
    CPoint point);

Parametri

pWndLock
Puntatore alla finestra proprietaria dell'immagine di trascinamento.

point
Posizione in corrispondenza della quale visualizzare l'immagine di trascinamento. Le coordinate sono relative all'angolo superiore sinistro della finestra (non all'area client).

Valore restituito

Diverso da zero se ha esito positivo; in caso contrario 0.

Osservazioni:

Le coordinate sono relative all'angolo superiore sinistro della finestra, pertanto è necessario compensare le larghezze degli elementi della finestra, ad esempio il bordo, la barra del titolo e la barra dei menu, quando si specificano le coordinate.

Se pWndLock è NULL, questa funzione disegna l'immagine nel contesto di visualizzazione associato alla finestra desktop e le coordinate sono relative all'angolo superiore sinistro dello schermo.

Questa funzione blocca tutti gli altri aggiornamenti alla finestra specificata durante l'operazione di trascinamento. Se è necessario eseguire un disegno durante un'operazione di trascinamento, ad esempio evidenziando la destinazione di un'operazione di trascinamento della selezione, è possibile nascondere temporaneamente l'immagine trascinata usando la CImageList::DragLeave funzione .

Esempio

Vedere l'esempio per CImageList::BeginDrag.

CImageList::DragLeave

Sblocca la finestra specificata da pWndLock e nasconde l'immagine di trascinamento, consentendo l'aggiornamento della finestra.

static BOOL PASCAL DragLeave(CWnd* pWndLock);

Parametri

pWndLock
Puntatore alla finestra proprietaria dell'immagine di trascinamento.

Valore restituito

Diverso da zero se ha esito positivo; in caso contrario 0.

Esempio

Vedere l'esempio per CImageList::EndDrag.

CImageList::DragMove

Chiamare questa funzione per spostare l'immagine trascinata durante un'operazione di trascinamento della selezione.

static BOOL PASCAL DragMove(CPoint pt);

Parametri

pt
Nuova posizione di trascinamento.

Valore restituito

Diverso da zero se ha esito positivo; in caso contrario 0.

Osservazioni:

Questa funzione viene in genere chiamata in risposta a un WM_MOUSEMOVE messaggio. Per avviare un'operazione di trascinamento, usare la BeginDrag funzione membro.

Esempio

void CImageListDlg::OnMouseMove(UINT nFlags, CPoint point)
{
   m_myImageList.DragMove(point);

   CDialog::OnMouseMove(nFlags, point);
}

CImageList::DragShowNolock

Mostra o nasconde l'immagine di trascinamento durante un'operazione di trascinamento, senza bloccare la finestra.

static BOOL PASCAL DragShowNolock(BOOL bShow);

Parametri

bShow
Specifica se l'immagine di trascinamento deve essere visualizzata.

Valore restituito

Diverso da zero se ha esito positivo; in caso contrario 0.

Osservazioni:

La CImageList::DragEnter funzione blocca tutti gli aggiornamenti della finestra durante un'operazione di trascinamento. Questa funzione, tuttavia, non blocca la finestra.

CImageList::Draw

Chiamare questa funzione per disegnare l'immagine trascinata durante un'operazione di trascinamento della selezione.

BOOL Draw(
    CDC* pDC,
    int nImage,
    POINT pt,
    UINT nStyle);

Parametri

pDC
Puntatore al contesto del dispositivo di destinazione.

nImage
Indice in base zero dell'immagine da disegnare.

pt
Posizione in cui disegnare all'interno del contesto di dispositivo specificato.

nStyle
Flag che specifica lo stile di disegno. Può essere uno o più di questi valori:

Valore Significato
ILD_BLEND25, ILD_FOCUS Disegna l'immagine, fondendo il 25% con il colore di evidenziazione del sistema. Questo valore non ha alcun effetto se l'elenco di immagini non contiene una maschera.
ILD_BLEND50, ILD_SELECTED, ILD_BLEND Disegna l'immagine, fondendo il 50% con il colore di evidenziazione del sistema. Questo valore non ha alcun effetto se l'elenco di immagini non contiene una maschera.
ILD_MASK Disegna la maschera.
ILD_NORMAL Disegna l'immagine usando il colore di sfondo per l'elenco di immagini. Se il colore di sfondo è il CLR_NONE valore, l'immagine viene disegnata in modo trasparente usando la maschera.
ILD_TRANSPARENT Disegna l'immagine in modo trasparente usando la maschera, indipendentemente dal colore di sfondo.

Valore restituito

Diverso da zero se ha esito positivo; in caso contrario 0.

Esempio

Vedere l'esempio per CImageList::SetOverlayImage.

CImageList::DrawEx

Disegna una voce di elenco di immagini nel contesto di dispositivo specificato.

BOOL DrawEx(
    CDC* pDC,
    int nImage,
    POINT pt,
    SIZE sz,
    COLORREF clrBk,
    COLORREF clrFg,
    UINT nStyle);

Parametri

pDC
Puntatore al contesto del dispositivo di destinazione.

nImage
Indice in base zero dell'immagine da disegnare.

pt
Posizione in cui disegnare all'interno del contesto di dispositivo specificato.

sz
Dimensione della parte dell'immagine da disegnare rispetto all'angolo superiore sinistro dell'immagine. Vedere dx e dy in ImageList_DrawEx Windows SDK.

clrBk
Colore di sfondo dell'immagine. Vedere rgbBk in ImageList_DrawEx Windows SDK.

clrFg
Colore di primo piano dell'immagine. Vedere rgbFg in ImageList_DrawEx Windows SDK.

nStyle
Flag che specifica lo stile di disegno. Vedere fStyle in ImageList_DrawEx Windows SDK.

Valore restituito

Diverso da zero se ha esito positivo; in caso contrario 0.

Osservazioni:

La funzione usa lo stile di disegno specificato e fonde l'immagine con il colore specificato.

Esempio

m_myImageList.DrawEx(&dc, 0, CPoint(0, 0), CSize(16, 16), CLR_DEFAULT,
                     CLR_DEFAULT, ILD_IMAGE);

CImageList::DrawIndirect

Chiamare questa funzione membro per disegnare un'immagine da un elenco di immagini.

BOOL DrawIndirect(IMAGELISTDRAWPARAMS* pimldp);

BOOL DrawIndirect(
    CDC* pDC,
    int nImage,
    POINT pt,
    SIZE sz,
    POINT ptOrigin,
    UINT fStyle = ILD_NORMAL,
    DWORD dwRop = SRCCOPY,
    COLORREF rgbBack = CLR_DEFAULT,
    COLORREF rgbFore = CLR_DEFAULT,
    DWORD fState = ILS_NORMAL,
    DWORD Frame = 0,
    COLORREF crEffect = CLR_DEFAULT);

Parametri

pimldp
Puntatore a una IMAGELISTDRAWPARAMS struttura che contiene informazioni sull'operazione di disegno.

pDC
Puntatore al contesto del dispositivo di destinazione. È necessario eliminare questo CDC oggetto al termine dell'operazione.

nImage
Indice in base zero dell'immagine da disegnare.

pt
Struttura POINT contenente le coordinate x e y in cui verrà disegnata l'immagine.

sz
Struttura SIZE che indica le dimensioni dell'immagine da disegnare.

ptOrigin
Struttura POINT contenente le coordinate x e y che specificano l'angolo superiore sinistro dell'operazione di disegno rispetto all'immagine stessa. I pixel dell'immagine che si trovano a sinistra della coordinata x e sopra la coordinata y non vengono disegnati.

fStyle
Flag che specifica lo stile di disegno e, facoltativamente, l'immagine di sovrimpressione. Per informazioni sull'immagine di sovrapposizione, vedere la sezione Osservazioni. L'implementazione predefinita MFC, ILD_NORMAL, disegna l'immagine usando il colore di sfondo per l'elenco di immagini. Se il colore di sfondo è il CLR_NONE valore, l'immagine viene disegnata in modo trasparente usando una maschera.

Altri stili possibili sono descritti sotto il fStyle membro della IMAGELISTDRAWPARAMS struttura.

dwRop
Valore che specifica un codice di operazione raster. Questi codici definiscono il modo in cui i dati di colore per il rettangolo di origine verranno combinati con i dati di colore per il rettangolo di destinazione per ottenere il colore finale. L'implementazione predefinita di MFC, SRCCOPY, copia il rettangolo di origine direttamente nel rettangolo di destinazione. Questo parametro viene ignorato se il fStyle parametro non include il ILD_ROP flag .

Altri valori possibili sono descritti nel dwRop membro della IMAGELISTDRAWPARAMS struttura.

rgbBack
Colore di sfondo dell'immagine, per impostazione predefinita CLR_DEFAULT. Questo parametro può essere un valore RGB definito dall'applicazione o uno dei valori seguenti:

Valore Significato
CLR_DEFAULT Colore di sfondo predefinito. L'immagine viene disegnata utilizzando il colore di sfondo dell'elenco di immagini.
CLR_NONE Nessun colore di sfondo. L'immagine viene disegnata in modo trasparente.

rgbFore
Colore di primo piano dell'immagine, per impostazione predefinita CLR_DEFAULT. Questo parametro può essere un valore RGB definito dall'applicazione o uno dei valori seguenti:

Valore Significato
CLR_DEFAULT Colore di primo piano predefinito. L'immagine viene disegnata utilizzando il colore di evidenziazione del sistema come colore di primo piano.
CLR_NONE Nessun colore di fusione. L'immagine viene combinata con il colore del contesto del dispositivo di destinazione.

Questo parametro viene usato solo se fStyle include il ILD_BLEND25 flag o ILD_BLEND50 .

fState
Flag che specifica lo stato del disegno. Questo membro può contenere uno o più flag di stato dell'elenco di immagini.

Frame
Influisce sul comportamento degli effetti saturazione e di fusione alfa.

Se usato con ILS_SATURATE, questo membro contiene il valore aggiunto a ogni componente di colore del tripletto RGB per ogni pixel nell'icona.

Se usato con ILS_APLHA, questo membro contiene il valore per il canale alfa. Questo valore può essere compreso tra 0 e 255, con 0 completamente trasparente e 255 completamente opaco.

crEffect
Valore COLORREF utilizzato per gli effetti alone e ombreggiatura.

Valore restituito

TRUE se l'immagine viene disegnata correttamente; in caso contrario FALSE, .

Osservazioni:

Usa la prima versione se vuoi riempire manualmente la struttura Win32. Usare la seconda versione se si desidera sfruttare uno o più argomenti predefiniti di MFC o evitare di gestire la struttura.

Un'immagine di sovrapposizione è un'immagine disegnata sopra l'immagine primaria, specificata in questa funzione membro dal nImage parametro . Disegnare una maschera di sovrapposizione usando la Draw funzione membro con l'indice in base uno della maschera di sovrimpressione specificata tramite la INDEXTOOVERLAYMASK macro.

Esempio

int i, dx, cx, cy, nCount = m_myImageList.GetImageCount();

::ImageList_GetIconSize(m_myImageList, &cx, &cy);

// Draw the images of the image list on the DC.
for (dx = 0, i = 0; i < nCount; i++)
{
   m_myImageList.DrawIndirect(&dc, i, CPoint(dx, 0),
                              CSize(cx, cy), CPoint(0, 0));
   dx += cx;
}

CImageList::EndDrag

Chiamare questa funzione per terminare un'operazione di trascinamento.

static void PASCAL EndDrag();

Osservazioni:

Per avviare un'operazione di trascinamento, usare la BeginDrag funzione membro.

Esempio

void CImageListDlg::OnLButtonUp(UINT nFlags, CPoint point)
{
   // Terminate the drag image (usually called from WM_LBUTTONUP).
   m_myImageList.DragLeave(this);
   m_myImageList.EndDrag();

   CDialog::OnLButtonUp(nFlags, point);
}

CImageList::ExtractIcon

Chiamare questa funzione per creare un'icona basata su un'immagine e sulla relativa maschera correlata in un elenco di immagini.

HICON ExtractIcon(int nImage);

Parametri

nImage
Indice in base zero dell'immagine.

Valore restituito

Handle dell'icona se ha esito positivo; in caso contrario NULL, .

Osservazioni:

Questo metodo si basa sul comportamento della ImageList_ExtractIcon macro per creare l'icona. Per altre informazioni sulla creazione e la pulizia dell'icona, vedere la ImageList_ExtractIcon macro.

Esempio

int i, dx, cx, cy, nCount = m_myImageList.GetImageCount();
HICON hIcon;

::ImageList_GetIconSize(m_myImageList, &cx, &cy);

// Draw the images of the image list on the DC.
for (dx = 0, i = 0; i < nCount; i++)
{
   hIcon = m_myImageList.ExtractIcon(i);

   dc.DrawIcon(dx, 0, hIcon);
   dx += cx;
}

CImageList::FromHandle

Restituisce un puntatore a un CImageList oggetto quando viene assegnato un handle a un elenco di immagini.

static CImageList* PASCAL FromHandle(HIMAGELIST hImageList);

Parametri

hImageList
Specifica l'elenco di immagini.

Valore restituito

Puntatore a un CImageList oggetto se ha esito positivo; in caso contrario NULL, .

Osservazioni:

Se un oggetto CImageList non è già collegato all'handle, viene creato e collegato un oggetto temporaneo CImageList . Questo oggetto temporaneo CImageList è valido solo fino alla successiva volta che l'applicazione ha tempo di inattività nel ciclo di eventi, in cui tutti gli oggetti temporanei vengono eliminati.

Esempio

CImageList *ConvertHandle(HIMAGELIST hmyImageList)
{
   // Convert the HIMAGELIST to a CImageList*.
   ASSERT(hmyImageList != NULL);
   CImageList *pmyImageList = CImageList::FromHandle(hmyImageList);
   ASSERT(pmyImageList != NULL);

   return pmyImageList;
}

CImageList::FromHandlePermanent

Restituisce un puntatore a un CImageList oggetto quando viene assegnato un handle a un elenco di immagini.

static CImageList* PASCAL FromHandlePermanent(HIMAGELIST hImageList);

Parametri

hImageList
Specifica l'elenco di immagini.

Valore restituito

Puntatore a un CImageList oggetto se ha esito positivo; in caso contrario NULL, .

Osservazioni:

Se un CImageList oggetto non è collegato all'handle, NULL viene restituito .

Esempio

CImageList *ConvertHandlePermanent(HIMAGELIST hmyImageList)
{
   // Convert the HIMAGELIST to a CImageList*.
   ASSERT(hmyImageList != NULL);
   CImageList *pmyImageList = CImageList::FromHandlePermanent(hmyImageList);
   ASSERT(pmyImageList != NULL);

   return pmyImageList;
}

CImageList::GetBkColor

Chiamare questa funzione per recuperare il colore di sfondo corrente per un elenco di immagini.

COLORREF GetBkColor() const;

Valore restituito

Valore del colore RGB del colore di sfondo dell'oggetto CImageList .

Esempio

Vedere l'esempio per CImageList::SetBkColor.

CImageList::GetDragImage

Ottiene l'elenco di immagini temporanee utilizzato per il trascinamento.

static CImageList* PASCAL GetDragImage(
    LPPOINT lpPoint,
    LPPOINT lpPointHotSpot);

Parametri

lpPoint
Indirizzo di una POINT struttura che riceve la posizione di trascinamento corrente.

lpPointHotSpot
Indirizzo di una POINT struttura che riceve l'offset dell'immagine di trascinamento rispetto alla posizione di trascinamento.

Valore restituito

In caso di esito positivo, un puntatore all'elenco di immagini temporanee utilizzato per il trascinamento; in caso contrario, NULL.

CImageList::GetImageCount

Chiamare questa funzione per recuperare il numero di immagini in un elenco di immagini.

int GetImageCount() const;

Valore restituito

Numero di immagini.

Esempio

Vedere l'esempio per CImageList::ExtractIcon.

CImageList::GetImageInfo

Chiamare questa funzione per recuperare informazioni su un'immagine.

BOOL GetImageInfo(
    int nImage,
    IMAGEINFO* pImageInfo) const;

Parametri

nImage
Indice in base zero dell'immagine.

pImageInfo
Puntatore a una IMAGEINFO struttura che riceve informazioni sull'immagine. Le informazioni contenute in questa struttura possono essere usate per modificare direttamente le bitmap per l'immagine.

Valore restituito

Diverso da zero se ha esito positivo; in caso contrario 0.

Osservazioni:

La IMAGEINFO struttura contiene informazioni su un'immagine in un elenco di immagini.

CImageList::GetSafeHandle

Chiamare questa funzione per recuperare il m_hImageList membro dati.

HIMAGELIST GetSafeHandle() const;

Valore restituito

Handle per l'elenco di immagini associate; in caso contrario NULL , se non è associato alcun oggetto.

Esempio

// Get the safe handle to the image list.
HIMAGELIST hImageList = m_myImageList.GetSafeHandle();

CImageList::m_hImageList

Handle dell'elenco di immagini associato a questo oggetto.

HIMAGELIST m_hImageList;

Osservazioni:

Il m_hImageList membro dati è una variabile pubblica di tipo HIMAGELIST.

Esempio

// Get the safe handle to the image list.
HIMAGELIST hImageList = m_myImageList.m_hImageList;

CImageList::operator HIMAGELIST

Utilizzare questo operatore per ottenere l'handle associato dell'oggetto CImageList .

operator HIMAGELIST() const;

Valore restituito

In caso di esito positivo, un handle per l'elenco di immagini rappresentato dall'oggetto CImageList ; in caso contrario NULL, .

Osservazioni:

Questo operatore è un operatore di cast che supporta l'uso diretto di un HIMAGELIST oggetto .

Esempio

// Get the safe handle to the image list.
HIMAGELIST hImageList = m_myImageList;

CImageList::Read

Chiamare questa funzione per leggere un elenco di immagini da un archivio.

BOOL Read(CArchive* pArchive);

Parametri

pArchive
Puntatore a un CArchive oggetto da cui deve essere letto l'elenco di immagini.

Valore restituito

Diverso da zero se ha esito positivo; in caso contrario 0.

Esempio

// Open the archive to load the image list from.
CFile myFile(_T("myfile.data"), CFile::modeRead);
CArchive ar(&myFile, CArchive::load);
CImageList myImgList;

// Load the image list from the archive.
myImgList.Read(&ar);

CImageList::Remove

Chiamare questa funzione per rimuovere un'immagine da un oggetto elenco di immagini.

BOOL Remove(int nImage);

Parametri

nImage
Indice in base zero dell'immagine da rimuovere.

Valore restituito

Diverso da zero se ha esito positivo; in caso contrario 0.

Osservazioni:

Tutti gli elementi che seguono nImage ora spostano verso il basso una posizione. Se, ad esempio, un elenco di immagini contiene due elementi, l'eliminazione del primo elemento causerà la presenza dell'elemento rimanente nella prima posizione. nImage=0 per l'elemento nella prima posizione.

Esempio

// Remove every other image from the image list.
for (int i = 0; i < m_myImageList.GetImageCount(); i++)
{
   m_myImageList.Remove(i);
}

CImageList::Replace

Chiamare questa funzione per sostituire un'immagine in un elenco di immagini con una nuova immagine.

BOOL Replace(
    int nImage,
    CBitmap* pbmImage,
    CBitmap* pbmMask);

int Replace(
    int nImage,
    HICON hIcon);

Parametri

nImage
Indice in base zero dell'immagine da sostituire.

pbmImage
Puntatore alla bitmap contenente l'immagine.

pbmMask
Puntatore alla bitmap contenente la maschera. Se non viene usata alcuna maschera con l'elenco di immagini, questo parametro viene ignorato.

hIcon
Handle per l'icona che contiene la bitmap e la maschera per la nuova immagine.

Valore restituito

La restituzione della versione restituisce un valore diverso da BOOL zero se ha esito positivo; in caso contrario, 0.

La restituzione della versione restituisce int l'indice in base zero dell'immagine se ha esito positivo; in caso contrario, - 1.

Osservazioni:

Chiamare questa funzione membro dopo aver chiamato SetImageCount per assegnare le nuove immagini valide ai numeri di indice dell'immagine segnaposto.

Esempio

Vedere l'esempio per CImageList::SetImageCount.

CImageList::SetBkColor

Chiamare questa funzione per impostare il colore di sfondo per un elenco di immagini.

COLORREF SetBkColor(COLORREF cr);

Parametri

cr
Colore di sfondo da impostare. Può essere CLR_NONE. In tal caso, le immagini vengono disegnate in modo trasparente usando la maschera.

Valore restituito

Colore di sfondo precedente se riuscito; in caso contrario CLR_NONE, .

Esempio

// Set the background color to white.
m_myImageList.SetBkColor(RGB(255, 255, 255));
ASSERT(m_myImageList.GetBkColor() == RGB(255, 255, 255));

CImageList::SetDragCursorImage

Crea una nuova immagine di trascinamento combinando l'immagine specificata (in genere un'immagine del cursore del mouse) con l'immagine di trascinamento corrente.

BOOL SetDragCursorImage(
    int nDrag,
    CPoint ptHotSpot);

Parametri

nDrag
Indice della nuova immagine da combinare con l'immagine di trascinamento.

ptHotSpot
Posizione del punto critico all'interno della nuova immagine.

Valore restituito

Diverso da zero se ha esito positivo; in caso contrario 0.

Osservazioni:

Poiché le funzioni di trascinamento usano la nuova immagine durante un'operazione di trascinamento, è consigliabile usare la funzione Windows ShowCursor per nascondere il cursore effettivo del mouse dopo aver chiamato CImageList::SetDragCursorImage. In caso contrario, il sistema potrebbe avere due cursori del mouse per la durata dell'operazione di trascinamento.

CImageList::SetImageCount

Chiamare questa funzione membro per reimpostare il numero di immagini in un CImageList oggetto .

BOOL SetImageCount(UINT uNewCount);

Parametri

uNewCount
Valore che specifica il nuovo numero totale di immagini nell'elenco di immagini.

Valore restituito

Diverso da zero se ha esito positivo; in caso contrario 0.

Osservazioni:

Se si chiama questa funzione membro per aumentare il numero di immagini nell'elenco di immagini, chiamare Replace per ogni immagine aggiuntiva per assegnare i nuovi indici alle immagini valide. Se non si assegnano gli indici a immagini valide, le operazioni di disegno che creano le nuove immagini saranno imprevedibili.

Se si riducono le dimensioni di un elenco di immagini usando questa funzione, le immagini troncate vengono liberate.

Esempio

// Set the image count of the image list to be 10 with
// all images being the system question mark icon.
m_myImageList.SetImageCount(10);
HICON hIcon = AfxGetApp()->LoadStandardIcon(IDI_QUESTION);

for (int i = 0; i < 10; i++)
{
   m_myImageList.Replace(i, hIcon);
}

CImageList::SetOverlayImage

Chiamare questa funzione per aggiungere l'indice in base zero di un'immagine all'elenco di immagini da usare come maschere di sovrapposizione.

BOOL SetOverlayImage(
    int nImage,
    int nOverlay);

Parametri

nImage
Indice in base zero dell'immagine da usare come maschera di sovrapposizione.

nOverlay
Indice in base uno della maschera di sovrapposizione.

Valore restituito

Diverso da zero se ha esito positivo; in caso contrario 0.

Osservazioni:

È possibile aggiungere fino a quattro indici all'elenco.

Una maschera di sovrapposizione è un'immagine disegnata in modo trasparente su un'altra immagine. Disegnare una maschera di sovrimpressione su un'immagine usando la CImageList::Draw funzione membro con l'indice in base uno della maschera di sovrimpressione specificata tramite la INDEXTOOVERLAYMASK macro.

Esempio

// Add a new image to the image list.
int nIndex = m_myImageList.Add(AfxGetApp()->LoadStandardIcon(IDI_QUESTION));

if (nIndex != -1)
{
   // Make the new image an overlay image.
   m_myImageList.SetOverlayImage(nIndex, 1);

   // Draw the first image in the image list with an overlay image.
   m_myImageList.Draw(&dc, 0, CPoint(0, 0), INDEXTOOVERLAYMASK(1));
}

CImageList::Write

Chiamare questa funzione per scrivere un oggetto elenco di immagini in un archivio.

BOOL Write(CArchive* pArchive);

Parametri

pArchive
Puntatore a un CArchive oggetto in cui archiviare l'elenco di immagini.

Valore restituito

Diverso da zero se ha esito positivo; in caso contrario 0.

Esempio

// Open the archive to store the image list in.
CFile myFile(_T("myfile.data"), CFile::modeCreate | CFile::modeWrite);
CArchive ar(&myFile, CArchive::store);

// Store the image list in the archive.
m_myImageList.Write(&ar);

Vedi anche

CObject Classe
Grafico della gerarchia
CListCtrl Classe
CTabCtrl Classe