Sdílet prostřednictvím


CImageList Třída

Poskytuje funkce ovládacího prvku Seznam běžných imagí systému Windows.

Syntaxe

class CImageList : public CObject

Členové

Veřejné konstruktory

Název Popis
CImageList::CImageList CImageList Vytvoří objekt.

Veřejné metody

Název Popis
CImageList::Add Přidá obrázek nebo obrázky do seznamu obrázků.
CImageList::Attach Připojí seznam obrázků k objektu CImageList .
CImageList::BeginDrag Začne přetahovat obrázek.
CImageList::Copy Zkopíruje obrázek uvnitř objektu CImageList .
CImageList::Create Inicializuje seznam obrázků a připojí ho k objektu CImageList .
CImageList::DeleteImageList Odstraní seznam obrázků.
CImageList::DeleteTempMap Volá se obslužnou rutinou CWinApp nečinnosti k odstranění libovolného dočasného CImageList objektu vytvořeného FromHandle.
CImageList::Detach Odpojte objekt seznamu obrázků od objektu CImageList a vrátí popisovač do seznamu obrázků.
CImageList::DragEnter Uzamkne aktualizace během operace přetažení a zobrazí obrázek přetažení na zadané pozici.
CImageList::DragLeave Odemkne okno a skryje obrázek přetažení, aby bylo možné okno aktualizovat.
CImageList::DragMove Přesune obrázek, který se přetahuje během operace přetažení.
CImageList::DragShowNolock Zobrazí nebo skryje obrázek přetažení během operace přetažení bez uzamčení okna.
CImageList::Draw Nakreslí obrázek, který se přetahuje během operace přetažení.
CImageList::DrawEx Nakreslí položku seznamu obrázků v zadaném kontextu zařízení. Funkce používá zadaný styl výkresu a prolnutí obrázku se zadanou barvou.
CImageList::DrawIndirect Nakreslí obrázek ze seznamu obrázků.
CImageList::EndDrag Ukončí operaci přetažení.
CImageList::ExtractIcon Vytvoří ikonu založenou na obrázku a maskě v seznamu obrázků.
CImageList::FromHandle Vrátí ukazatel na CImageList objekt při zadání úchytu do seznamu obrázků. CImageList Pokud objekt není připojený k popisovači, vytvoří se dočasný CImageList objekt a připojí se.
CImageList::FromHandlePermanent Vrátí ukazatel na CImageList objekt při zadání úchytu do seznamu obrázků. CImageList Pokud objekt není připojený k popisovači, vrátí se hodnota NULL.
CImageList::GetBkColor Načte aktuální barvu pozadí seznamu obrázků.
CImageList::GetDragImage Získá dočasný seznam obrázků, který se používá k přetahování.
CImageList::GetImageCount Načte počet obrázků v seznamu obrázků.
CImageList::GetImageInfo Načte informace o obrázku.
CImageList::GetSafeHandle Načte m_hImageList.
CImageList::Read Přečte seznam obrázků z archivu.
CImageList::Remove Odebere obrázek ze seznamu obrázků.
CImageList::Replace Nahradí obrázek v seznamu obrázků novým obrázkem.
CImageList::SetBkColor Nastaví barvu pozadí pro seznam obrázků.
CImageList::SetDragCursorImage Vytvoří nový obrázek přetažení.
CImageList::SetImageCount Obnoví počet obrázků v seznamu obrázků.
CImageList::SetOverlayImage Přidá index obrázku založený na nule do seznamu obrázků, které se mají použít jako překryvné masky.
CImageList::Write Zapíše seznam obrázků do archivu.

Veřejné operátory

Název Popis
CImageList::operator HIMAGELIST Vrátí připojenou HIMAGELIST k CImageList.

Veřejné datové členy

Název Popis
CImageList::m_hImageList Popisovač obsahující seznam obrázků připojený k tomuto objektu.

Poznámky

Seznam obrázků je kolekce obrázků se stejnou velikostí, na kterou lze odkazovat pomocí indexu založeného na nule. Seznamy obrázků slouží k efektivní správě velkých sad ikon nebo rastrových obrázků. Všechny obrázky v seznamu obrázků jsou obsaženy v jednom širokoúhlém rastrovém obrázku ve formátu zařízení obrazovky. Seznam obrázků může obsahovat také monochromatický rastrový obrázek, který obsahuje masky používané k průhledné kreslení obrázků (styl ikony). Programovací rozhraní aplikace Microsoft Win32 (API) poskytuje funkce seznamu obrázků, které umožňují kreslit obrázky, vytvářet a zničit seznamy obrázků, přidávat a odebírat obrázky, nahrazovat obrázky, sloučit obrázky a přetahovat obrázky.

Tento ovládací prvek (a proto CImageList třída) je k dispozici pouze pro programy spuštěné v systémech Windows 95/98 a systém Windows NT verze 3.51 a novější.

Další informace o použití CImageListnaleznete v tématu Ovládací prvky a použití CImageList.

Hierarchie dědičnosti

CObject

CImageList

Požadavky

Záhlaví: afxcmn.h

CImageList::Add

Voláním této funkce přidáte jeden nebo více obrázků nebo ikonu do seznamu obrázků.

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

int Add(
    CBitmap* pbmImage,
    COLORREF crMask);

int Add(HICON hIcon);

Parametry

pbmImage
Ukazatel na rastrový obrázek obsahující obrázek nebo obrázky Počet obrázků je odvozen z šířky rastrového obrázku.

pbmMask
Ukazatel na rastrový obrázek obsahující masku. Pokud se v seznamu obrázků nepoužívá žádná maska, bude tento parametr ignorován.

crMask
Barva použitá k vygenerování masky Každý pixel této barvy v daném rastrovém obrázku se změní na černou a odpovídající bit v masce je nastaven na jeden.

hIcon
Úchyt ikony, která obsahuje rastrový obrázek a masku nového obrázku.

Návratová hodnota

Index založený na nule prvního nového obrázku v případě úspěchu; jinak - 1.

Poznámky

Zodpovídáte za uvolnění popisovače ikony, až s ním budete hotovi.

Příklad

// 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

Voláním této funkce připojíte seznam obrázků k objektu CImageList .

BOOL Attach(HIMAGELIST hImageList);

Parametry

hImageList
Popisovač objektu seznamu obrázků.

Návratová hodnota

Nenulové, pokud byla příloha úspěšná; jinak 0.

Příklad

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

Voláním této funkce začnete přetahovat obrázek.

BOOL BeginDrag(
    int nImage,
    CPoint ptHotSpot);

Parametry

nImage
Index obrázku založený na nule, který chcete přetáhnout.

ptHotSpot
Souřadnice počáteční pozice přetažení (obvykle pozice kurzoru). Souřadnice jsou relativní vzhledem k levému hornímu rohu obrázku.

Návratová hodnota

Nenulové, pokud je úspěšné; jinak 0.

Poznámky

Tato funkce vytvoří dočasný seznam obrázků, který se používá k přetahování. Obrázek kombinuje zadaný obrázek a jeho masku s aktuálním kurzorem. V reakci na následné WM_MOUSEMOVE zprávy můžete obrázek přetažení přesunout pomocí DragMove členské funkce. Chcete-li ukončit operaci přetažení, můžete použít EndDrag členské funkce.

Příklad

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

CImageList Vytvoří objekt.

CImageList();

CImageList::Copy

Tato členová funkce implementuje chování funkce ImageList_CopyWin32 , jak je popsáno v sadě Windows SDK.

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

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

Parametry

iDst
Index image založený na nule, který se má použít jako cíl operace kopírování.

iSrc
Index image založený na nule, který se má použít jako zdroj operace kopírování.

uFlags
Hodnota příznaku bitu, která určuje typ operace kopírování, která se má vytvořit. Tento parametr může být jedna z následujících hodnot:

Hodnota Význam
ILCF_MOVE Zdrojová image se zkopíruje do indexu cílové image. Výsledkem této operace je více instancí dané image. ILCF_MOVE je výchozí možnost.
ILCF_SWAP Umístění zdrojových a cílových imagí se vyměňují v seznamu imagí.

pSrc
Ukazatel na CImageList objekt, který je cílem operace kopírování.

Návratová hodnota

Nenulové, pokud je úspěšné; jinak nula.

Příklad

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

Inicializuje seznam obrázků a připojí ho k objektu CImageList .

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);

Parametry

cx
Rozměry každého obrázku v pixelech

cy
Rozměry každého obrázku v pixelech

nFlags
Určuje typ seznamu obrázků, který se má vytvořit. Tento parametr může být kombinací následujících hodnot, ale může obsahovat pouze jednu z ILC_COLOR těchto hodnot.

Hodnota Význam
ILC_COLOR Pokud není zadán žádný z ostatních ILC_COLOR* příznaků, použijte výchozí chování. Výchozí hodnota je ILC_COLOR4obvykle ; ale u starších ovladačů zobrazení je výchozí ILC_COLORDDBhodnota .
ILC_COLOR4 Jako rastrový obrázek seznamu obrázků použijte 4bitový (16barevný) rastrový obrázek nezávislý na zařízení (DIB).
ILC_COLOR8 Použijte 8bitovou část DIB. Barvy použité pro tabulku barev jsou stejné barvy jako polotónová paleta.
ILC_COLOR16 Použijte 16bitovou část DIB (32/64k barvu).
ILC_COLOR24 Použijte 24bitovou část DIB.
ILC_COLOR32 Použijte 32bitovou část DIB.
ILC_COLORDDB Použijte rastrový obrázek závislý na zařízení.
ILC_MASK Používá masku. Seznam obrázků obsahuje dva rastrové obrázky, z nichž jeden je monochromatický rastrový obrázek použitý jako maska. Pokud tato hodnota není zahrnuta, seznam obrázků obsahuje pouze jeden rastrový obrázek. Další informace o maskovaných obrázcích najdete v části Kreslení obrázků ze seznamu obrázků.

nInitial
Počet obrázků, které seznam obrázků na začátku obsahuje

nGrow
Počet obrázků, podle kterých se seznam obrázků může zvětšit, když systém potřebuje změnit velikost seznamu, aby se uvolnil prostor pro nové obrázky. Tento parametr představuje počet nových obrázků, které může seznam obrázků se změněnou velikostí obsahovat.

nBitmapID
ID prostředků rastrového obrázku, která se mají přidružit k seznamu obrázků.

crMask
Barva použitá k vygenerování masky Každý pixel této barvy v zadaném rastrovém obrázku se změní na černou a odpovídající bit v masce je nastaven na jeden.

lpszBitmapID
Řetězec obsahující ID prostředků obrázků.

imagelist1
Odkaz na CImageList objekt.

nImage1
Index prvního existujícího obrázku

imagelist2
Odkaz na CImageList objekt.

nImage2
Index druhého existujícího obrázku

dx
Posun osy x druhého obrázku ve vztahu k prvnímu obrázku v pixelech.

dy
Posun osy y druhého obrázku ve vztahu k prvnímu obrázku v pixelech.

pImageList
Ukazatel na CImageList objekt.

Návratová hodnota

Nenulové, pokud je úspěšné; jinak 0.

Poznámky

Sestavíte ho CImageList ve dvou krocích. Nejprve zavolejte konstruktor a potom volání Create, který vytvoří seznam obrázků a připojí ho k objektu CImageList .

Příklad

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

CImageList::DeleteImageList

Voláním této funkce odstraníte seznam obrázků.

BOOL DeleteImageList();

Návratová hodnota

Nenulové, pokud je úspěšné; jinak 0.

Příklad

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

CImageList::DeleteTempMap

Volá se automaticky obslužnou rutinou nečinnosti, DeleteTempMap odstraní všechny dočasné CImageList objekty vytvořené fromHandle, ale nezničí žádné popisovače (hImageList) dočasně přidružené k objektůmImageList.CWinApp

static void PASCAL DeleteTempMap();

Příklad

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

CImageList::Detach

Voláním této funkce odpojete objekt seznamu obrázků od objektu CImageList .

HIMAGELIST Detach();

Návratová hodnota

Popisovač objektu seznamu obrázků.

Poznámky

Tato funkce vrátí popisovač objektu seznamu obrázků.

Příklad

Podívejte se na příklad pro CImageList::Attach.

CImageList::DragEnter

Během operace přetažení uzamkne aktualizace okna určeného uživatelem pWndLock a zobrazí obrázek přetažení na pozici určené point.

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

Parametry

pWndLock
Ukazatel myši na okno, které vlastní obrázek přetažení.

point
Pozice, na které se má zobrazit obrázek přetažení. Souřadnice jsou relativní vzhledem k levému hornímu rohu okna (nikoli klientské oblasti).

Návratová hodnota

Nenulové, pokud je úspěšné; jinak 0.

Poznámky

Souřadnice jsou relativní vzhledem k levému rohu okna, takže při zadávání souřadnic musíte kompenzovat šířky prvků okna, jako jsou ohraničení, záhlaví a řádek nabídek.

Pokud pWndLock ano NULL, tato funkce nakreslí obrázek v kontextu zobrazení přidruženém k okně plochy a souřadnice jsou relativní vzhledem k levému hornímu rohu obrazovky.

Tato funkce uzamkne všechny ostatní aktualizace daného okna během operace přetažení. Pokud během operace přetažení potřebujete udělat nějaký výkres, například zvýraznit cíl operace přetažení, můžete přetažením dočasně skrýt přetaženou image pomocí CImageList::DragLeave funkce.

Příklad

Podívejte se na příklad pro CImageList::BeginDrag.

CImageList::DragLeave

Odemkne okno určené pWndLock a skryje obrázek přetažení, což umožní aktualizaci okna.

static BOOL PASCAL DragLeave(CWnd* pWndLock);

Parametry

pWndLock
Ukazatel myši na okno, které vlastní obrázek přetažení.

Návratová hodnota

Nenulové, pokud je úspěšné; jinak 0.

Příklad

Podívejte se na příklad pro CImageList::EndDrag.

CImageList::DragMove

Voláním této funkce přesunete obrázek, který se přetahuje během operace přetažení.

static BOOL PASCAL DragMove(CPoint pt);

Parametry

pt
Nová pozice přetažení

Návratová hodnota

Nenulové, pokud je úspěšné; jinak 0.

Poznámky

Tato funkce se obvykle volá v reakci na WM_MOUSEMOVE zprávu. Chcete-li zahájit operaci přetažení, použijte členovou BeginDrag funkci.

Příklad

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

   CDialog::OnMouseMove(nFlags, point);
}

CImageList::DragShowNolock

Zobrazí nebo skryje obrázek přetažení během operace přetažení bez uzamčení okna.

static BOOL PASCAL DragShowNolock(BOOL bShow);

Parametry

bShow
Určuje, zda se má obrázek přetažení zobrazit.

Návratová hodnota

Nenulové, pokud je úspěšné; jinak 0.

Poznámky

Funkce CImageList::DragEnter uzamkne všechny aktualizace okna během operace přetažení. Tato funkce ale nezamkne okno.

CImageList::Draw

Voláním této funkce nakreslete obrázek, který se přetahuje během operace přetažení.

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

Parametry

pDC
Ukazatel na kontext cílového zařízení

nImage
Index obrázku založený na nule, který se má nakreslit.

pt
Umístění, ve kterém se má kreslit v zadaném kontextu zařízení.

nStyle
Příznak určující styl výkresu Může to být jedna nebo více z těchto hodnot:

Hodnota Význam
ILD_BLEND25, ILD_FOCUS Nakreslí obrázek, prolnutí 25 procent s barvou zvýraznění systému. Tato hodnota nemá žádný vliv, pokud seznam obrázků neobsahuje masku.
ILD_BLEND50, , ILD_SELECTEDILD_BLEND Nakreslí obrázek a prolíná 50 procent barvou zvýraznění systému. Tato hodnota nemá žádný vliv, pokud seznam obrázků neobsahuje masku.
ILD_MASK Nakreslí masku.
ILD_NORMAL Nakreslí obrázek pomocí barvy pozadí pro seznam obrázků. Pokud je CLR_NONE barva pozadí hodnotou, obrázek se transparentně nakreslí pomocí masky.
ILD_TRANSPARENT Nakreslí obrázek transparentně pomocí masky bez ohledu na barvu pozadí.

Návratová hodnota

Nenulové, pokud je úspěšné; jinak 0.

Příklad

Podívejte se na příklad pro CImageList::SetOverlayImage.

CImageList::DrawEx

Nakreslí položku seznamu obrázků v zadaném kontextu zařízení.

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

Parametry

pDC
Ukazatel na kontext cílového zařízení

nImage
Index obrázku založený na nule, který se má nakreslit.

pt
Umístění, ve kterém se má kreslit v zadaném kontextu zařízení.

sz
Velikost části obrázku, která se má nakreslit vzhledem k levému hornímu rohu obrázku. Viz dx a dy v ImageList_DrawEx sadě Windows SDK.

clrBk
Barva pozadí obrázku Viz rgbBk v ImageList_DrawEx sadě Windows SDK.

clrFg
Barva popředí obrázku Viz rgbFg v ImageList_DrawEx sadě Windows SDK.

nStyle
Příznak určující styl výkresu Viz fStyle v ImageList_DrawEx sadě Windows SDK.

Návratová hodnota

Nenulové, pokud je úspěšné; jinak 0.

Poznámky

Funkce používá zadaný styl výkresu a prolnutí obrázku se zadanou barvou.

Příklad

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

CImageList::DrawIndirect

Voláním této členské funkce nakreslete obrázek ze seznamu obrázků.

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);

Parametry

pimldp
Ukazatel na IMAGELISTDRAWPARAMS strukturu, která obsahuje informace o operaci kreslení.

pDC
Ukazatel na kontext cílového zařízení. Jakmile s ním budete hotovi, musíte tento CDC objekt odstranit.

nImage
Index obrázku založený na nule, který se má nakreslit.

pt
Struktura POINT obsahující souřadnice x a y, kde bude obrázek nakreslen.

sz
Struktura SIZE označující velikost obrázku, který se má nakreslit.

ptOrigin
Struktura POINT obsahující souřadnice x a y určující levý horní roh operace kreslení s ohledem na samotný obrázek. Pixely obrázku, které jsou vlevo od souřadnice x a nad souřadnicí y, nejsou vykresleny.

fStyle
Příznak určující styl výkresu a volitelně i překryvný obrázek. Informace o překryvném obrázku najdete v části Poznámky. Výchozí implementace MFC nakreslí ILD_NORMALobrázek pomocí barvy pozadí pro seznam obrázků. Pokud je CLR_NONE barva pozadí hodnotou, obrázek se transparentně nakreslí pomocí masky.

Další možné styly jsou popsány pod fStyle členem IMAGELISTDRAWPARAMS struktury.

dwRop
Hodnota určující raster-operation kód. Tyto kódy definují, jak se barevná data zdrojového obdélníku zkombinují s barevnými daty pro cílový obdélník, aby se dosáhlo konečné barvy. Výchozí implementace SRCCOPYMFC, zkopíruje zdrojový obdélník přímo do cílového obdélníku. Tento parametr se ignoruje, pokud fStyle parametr neobsahuje ILD_ROP příznak.

Další možné hodnoty jsou popsány pod dwRop členem IMAGELISTDRAWPARAMS struktury.

rgbBack
Barva pozadí obrázku ve výchozím nastavení CLR_DEFAULT. Tento parametr může být hodnota RGB definovaná aplikací nebo jedna z následujících hodnot:

Hodnota Význam
CLR_DEFAULT Výchozí barva pozadí Obrázek se nakreslí pomocí barvy pozadí seznamu obrázků.
CLR_NONE Žádná barva pozadí. Obrázek je nakreslen transparentně.

rgbFore
Barva popředí obrázku ve výchozím nastavení CLR_DEFAULT. Tento parametr může být hodnota RGB definovaná aplikací nebo jedna z následujících hodnot:

Hodnota Význam
CLR_DEFAULT Výchozí barva popředí Obrázek se nakreslí barvou zvýraznění systému jako barvou popředí.
CLR_NONE Žádná barva směsi. Obrázek se spojí s barvou kontextu cílového zařízení.

Tento parametr se používá pouze v případě, že fStyle obsahuje ILD_BLEND25 příznak nebo ILD_BLEND50 příznak.

fState
Příznak určující stav výkresu Tento člen může obsahovat jeden nebo více příznaků stavu seznamu obrázků.

Frame
Ovlivňuje chování sytých a alfa-blending efektů.

Při použití ILS_SATURATEs , tento člen obsahuje hodnotu, která je přidána do každé barevné komponenty RGB triplet pro každý pixel v ikoně.

Při použití ILS_APLHAs tímto členem je hodnota alfa kanálu. Tato hodnota může být od 0 do 255, přičemž hodnota 0 je zcela průhledná a 255 je zcela neprůhledná.

crEffect
Hodnota použitá COLORREF pro efekty záře a stínu.

Návratová hodnota

TRUE je-li obrázek úspěšně nakreslen; jinak FALSE.

Poznámky

Pokud chcete vyplnit strukturu Win32 sami, použijte první verzi. Druhou verzi použijte, pokud chcete využít jeden nebo více výchozích argumentů mfc nebo se vyhnout správě struktury.

Překryvný obrázek je obrázek, který je nakreslený nad primárním obrázkem zadaným nImage v této členské funkci parametrem. Nakreslete překryvnou masku pomocí Draw členské funkce s jedním indexem masky překrytí určeného INDEXTOOVERLAYMASK pomocí makra.

Příklad

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

Voláním této funkce ukončíte operaci přetažení.

static void PASCAL EndDrag();

Poznámky

Chcete-li zahájit operaci přetažení, použijte členovou BeginDrag funkci.

Příklad

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

Voláním této funkce vytvoříte ikonu založenou na obrázku a související masce v seznamu obrázků.

HICON ExtractIcon(int nImage);

Parametry

nImage
Index obrázku založený na nule

Návratová hodnota

Popisovač ikony v případě úspěchu; jinak NULL.

Poznámky

Tato metoda spoléhá na chování ImageList_ExtractIcon makra k vytvoření ikony. Další informace o vytváření a čištění ikon najdete v ImageList_ExtractIcon makrech.

Příklad

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

Vrátí ukazatel na CImageList objekt při zadání úchytu do seznamu obrázků.

static CImageList* PASCAL FromHandle(HIMAGELIST hImageList);

Parametry

hImageList
Určuje seznam obrázků.

Návratová hodnota

Ukazatel na CImageList objekt, pokud je úspěšný; jinak NULL.

Poznámky

CImageList Pokud ještě není připojen k popisovači, vytvoří se dočasný CImageList objekt a připojí se. Tento dočasný CImageList objekt je platný pouze do doby, kdy aplikace příště ve smyčce událostí nečinně odstraní všechny dočasné objekty.

Příklad

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

Vrátí ukazatel na CImageList objekt při zadání úchytu do seznamu obrázků.

static CImageList* PASCAL FromHandlePermanent(HIMAGELIST hImageList);

Parametry

hImageList
Určuje seznam obrázků.

Návratová hodnota

Ukazatel na CImageList objekt, pokud je úspěšný; jinak NULL.

Poznámky

CImageList Pokud objekt není připojen k popisovači, NULL vrátí se.

Příklad

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

Voláním této funkce načtete aktuální barvu pozadí seznamu obrázků.

COLORREF GetBkColor() const;

Návratová hodnota

Hodnota barvy RGB barvy pozadí objektu CImageList .

Příklad

Podívejte se na příklad pro CImageList::SetBkColor.

CImageList::GetDragImage

Získá dočasný seznam obrázků, který se používá k přetahování.

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

Parametry

lpPoint
POINT Adresa struktury, která obdrží aktuální pozici přetažení.

lpPointHotSpot
POINT Adresa struktury, která obdrží posun obrázku přetažení vzhledem k pozici přetažení.

Návratová hodnota

V případě úspěchu ukazatel na dočasný seznam obrázků, který se používá k přetahování; v opačném případě . NULL

CImageList::GetImageCount

Voláním této funkce načtěte počet obrázků v seznamu obrázků.

int GetImageCount() const;

Návratová hodnota

Početobrázkůch

Příklad

Podívejte se na příklad pro CImageList::ExtractIcon.

CImageList::GetImageInfo

Voláním této funkce načtěte informace o obrázku.

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

Parametry

nImage
Index obrázku založený na nule

pImageInfo
Ukazatel na IMAGEINFO strukturu, která přijímá informace o obrázku. Informace v této struktuře lze použít k přímé manipulaci s rastrovými obrázky pro obrázek.

Návratová hodnota

Nenulové, pokud je úspěšné; jinak 0.

Poznámky

Struktura IMAGEINFO obsahuje informace o obrázku v seznamu obrázků.

CImageList::GetSafeHandle

Voláním této funkce načtěte m_hImageList datový člen.

HIMAGELIST GetSafeHandle() const;

Návratová hodnota

Popisovač připojeného seznamu obrázků; v opačném případě NULL , pokud není připojen žádný objekt.

Příklad

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

CImageList::m_hImageList

Popisovač seznamu obrázků připojený k tomuto objektu.

HIMAGELIST m_hImageList;

Poznámky

Datový m_hImageList člen je veřejná proměnná typu HIMAGELIST.

Příklad

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

CImageList::operator HIMAGELIST

Tento operátor slouží k získání připojeného popisovače objektu CImageList .

operator HIMAGELIST() const;

Návratová hodnota

V případě úspěchu popisovač seznamu obrázků reprezentovaný objektem CImageList ; jinak NULL.

Poznámky

Tento operátor je operátor přetypování, který podporuje přímé použití objektu HIMAGELIST .

Příklad

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

CImageList::Read

Voláním této funkce přečtete seznam obrázků z archivu.

BOOL Read(CArchive* pArchive);

Parametry

pArchive
Ukazatel na CArchive objekt, ze kterého se má číst seznam obrázků.

Návratová hodnota

Nenulové, pokud je úspěšné; jinak 0.

Příklad

// 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

Voláním této funkce odeberete obrázek z objektu seznamu obrázků.

BOOL Remove(int nImage);

Parametry

nImage
Index image založený na nule, který chcete odebrat.

Návratová hodnota

Nenulové, pokud je úspěšné; jinak 0.

Poznámky

Všechny následující nImage položky se teď přesunou o jednu pozici dolů. Pokud například seznam obrázků obsahuje dvě položky, odstranění první položky způsobí, že zbývající položka bude nyní na první pozici. nImage=0 pro položku na první pozici.

Příklad

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

CImageList::Replace

Voláním této funkce nahradíte obrázek v seznamu obrázků novým obrázkem.

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

int Replace(
    int nImage,
    HICON hIcon);

Parametry

nImage
Index image založený na nule, který se má nahradit.

pbmImage
Ukazatel na rastrový obrázek obsahující obrázek.

pbmMask
Ukazatel na rastrový obrázek obsahující masku. Pokud se v seznamu obrázků nepoužívá žádná maska, bude tento parametr ignorován.

hIcon
Úchyt ikony, která obsahuje rastrový obrázek a masku pro nový obrázek.

Návratová hodnota

Vrácená verze BOOL vrátí nenulové, pokud je úspěšná, jinak 0.

Verze vracející int nulu vrátí index obrázku založený na nule, pokud je úspěšný; jinak – 1.

Poznámky

Voláním této členské funkce po volání SetImageCount přiřaďte nové platné obrázky zástupným číslům indexu obrázků.

Příklad

Podívejte se na příklad pro CImageList::SetImageCount.

CImageList::SetBkColor

Voláním této funkce nastavíte barvu pozadí seznamu obrázků.

COLORREF SetBkColor(COLORREF cr);

Parametry

cr
Barva pozadí, která se má nastavit. Může to být CLR_NONE. V takovém případě se obrázky nakreslují transparentně pomocí masky.

Návratová hodnota

Předchozí barva pozadí, pokud byla úspěšná; jinak CLR_NONE.

Příklad

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

CImageList::SetDragCursorImage

Vytvoří nový obrázek přetažením zkombinováním daného obrázku (obvykle obrázku kurzoru myši) s aktuálním obrázkem přetažení.

BOOL SetDragCursorImage(
    int nDrag,
    CPoint ptHotSpot);

Parametry

nDrag
Index nového obrázku, který se má zkombinovat s přetažením.

ptHotSpot
Umístění horkého místa v novém obrázku

Návratová hodnota

Nenulové, pokud je úspěšné; jinak 0.

Poznámky

Vzhledem k tomu, že funkce přetažení používají nový obrázek během operace přetažení, měli byste použít funkci Windows ShowCursor ke skrytí skutečného kurzoru myši po volání CImageList::SetDragCursorImage. Jinak se může zdát, že systém má po dobu trvání operace přetažení dva kurzory myši.

CImageList::SetImageCount

Voláním této členské funkce obnovíte počet obrázků v objektu CImageList .

BOOL SetImageCount(UINT uNewCount);

Parametry

uNewCount
Hodnota určující nový celkový počet obrázků v seznamu obrázků.

Návratová hodnota

Nenulové, pokud je úspěšné; jinak nula.

Poznámky

Pokud zavoláte tuto členovou funkci, aby se zvýšil počet obrázků v seznamu obrázků, zavolejte Replace pro každý další obrázek, aby se nové indexy přiřadily platným obrázkům. Pokud se vám nepodaří přiřadit indexy k platným imagím, operace kreslení, které vytvoří nové image, budou nepředvídatelné.

Pokud pomocí této funkce zmenšíte velikost seznamu obrázků, oříznuté obrázky se uvolní.

Příklad

// 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

Voláním této funkce přidáte index obrázku založený na nule do seznamu obrázků, které se mají použít jako překryvné masky.

BOOL SetOverlayImage(
    int nImage,
    int nOverlay);

Parametry

nImage
Index obrázku založený na nule, který se použije jako překryvná maska.

nOverlay
Jeden index překryvné masky.

Návratová hodnota

Nenulové, pokud je úspěšné; jinak 0.

Poznámky

Do seznamu lze přidat až čtyři indexy.

Překryvná maska je obrázek nakreslený transparentně přes jiný obrázek. Nakreslete překryvnou masku nad obrázkem pomocí CImageList::Draw členské funkce s indexem překrytí určeného INDEXTOOVERLAYMASK pomocí makra.

Příklad

// 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

Voláním této funkce napište objekt seznamu obrázků do archivu.

BOOL Write(CArchive* pArchive);

Parametry

pArchive
Ukazatel na CArchive objekt, ve kterém se má uložit seznam obrázků.

Návratová hodnota

Nenulové, pokud je úspěšné; jinak 0.

Příklad

// 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);

Viz také

CObject Třída
Graf hierarchie
CListCtrl Třída
CTabCtrl Třída