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_hImageList Recupera . |
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 CImageList
di , vedere Controlli e uso di CImageList
.
Gerarchia di ereditarietà
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_Copy
Win32 , 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