Megosztás:


CImageList osztály

A Windows közös rendszerképlista-vezérlő funkcióit biztosítja.

Szemantika

class CImageList : public CObject

Tagok

Nyilvános konstruktorok

Név Leírás
CImageList::CImageList Egy CImageList objektumot hoz létre.

Nyilvános metódusok

Név Leírás
CImageList::Add Képet vagy képeket ad hozzá egy képlistához.
CImageList::Attach Képlistát csatol egy CImageList objektumhoz.
CImageList::BeginDrag Megkezdi a kép húzását.
CImageList::Copy Kép másolása egy objektumon CImageList belül.
CImageList::Create Inicializál egy képlistát, és csatolja egy CImageList objektumhoz.
CImageList::DeleteImageList Képlista törlése.
CImageList::DeleteTempMap Az üresjárati idő kezelője CWinApp meghívta a rendszer által létrehozott CImageListideiglenes FromHandle objektumok törlésére.
CImageList::Detach Leválaszt egy képlistaobjektumot egy CImageList objektumról, és egy fogópontot ad vissza egy képlistához.
CImageList::DragEnter Zárolja a frissítéseket egy húzási művelet során, és megjeleníti a húzási képet egy megadott helyen.
CImageList::DragLeave Feloldja az ablakot, és elrejti az húzási képet, hogy az ablak frissíthető legyen.
CImageList::DragMove Áthelyezi a húzási művelet során húzott képet.
CImageList::DragShowNolock Megjeleníti vagy elrejti az húzási képet egy húzási művelet során, az ablak zárolása nélkül.
CImageList::Draw Megrajzolja a húzási művelet során húzott képet.
CImageList::DrawEx Képlistaelem rajzolása a megadott eszközkörnyezetben. A függvény a megadott rajzstílust használja, és egyesíti a képet a megadott színnel.
CImageList::DrawIndirect Kép rajzolása egy képlistából.
CImageList::EndDrag Egy húzási művelet befejezése.
CImageList::ExtractIcon Kép és maszk alapján létrehoz egy ikont egy képlistában.
CImageList::FromHandle Egy objektumra CImageList mutató mutatót ad vissza, ha egy képlistához fogópontot ad. Ha egy CImageList objektum nincs csatolva a leíróhoz, egy ideiglenes CImageList objektum jön létre és csatolva.
CImageList::FromHandlePermanent Egy objektumra CImageList mutató mutatót ad vissza, ha egy képlistához fogópontot ad. Ha egy CImageList objektum nincs csatolva a fogóponthoz, a függvény NULL értéket ad vissza.
CImageList::GetBkColor Lekéri egy képlista aktuális háttérszínét.
CImageList::GetDragImage Lekéri a húzáshoz használt ideiglenes képlistát.
CImageList::GetImageCount Lekéri a képek számát egy képlistában.
CImageList::GetImageInfo Adatokat kér le egy képről.
CImageList::GetSafeHandle Lekéri a m_hImageList.
CImageList::Read Egy archív képlistát olvas be.
CImageList::Remove Eltávolít egy képet egy képlistáról.
CImageList::Replace Egy képlista képét lecseréli egy új képre.
CImageList::SetBkColor Beállítja egy képlista háttérszínét.
CImageList::SetDragCursorImage Új húzási képet hoz létre.
CImageList::SetImageCount Alaphelyzetbe állítja a képek számát egy képlistában.
CImageList::SetOverlayImage Hozzáadja egy kép nullaalapú indexét az átfedésmaszkként használandó képek listájához.
CImageList::Write Képlistát ír egy archívumba.

Nyilvános operátorok

Név Leírás
CImageList::operator HIMAGELIST A csatolt értéket adja HIMAGELIST vissza.CImageList

Nyilvános adatok tagjai

Név Leírás
CImageList::m_hImageList Az objektumhoz csatolt képlistát tartalmazó fogópont.

Megjegyzések

A "képlista" azonos méretű képek gyűjteménye, amelyekre a nulla alapú index hivatkozhat. A rendszerképlisták nagy méretű ikonok vagy bitképek hatékony kezelésére szolgálnak. A képlistában szereplő összes kép egyetlen, széles bitképben, képernyőeszköz-formátumban található. A képlisták tartalmazhatnak egy monokróm bitképet is, amely a képek transzparens rajzolásához használt maszkokat (ikonstílust) tartalmaz. A Microsoft Win32 alkalmazásprogramozási felülete (API) képlistafüggvényeket biztosít, amelyekkel képeket rajzolhat, képlistákat hozhat létre és semmisíthet meg, képeket vehet fel és távolíthat el, képeket cserélhet, képeket egyesíthet és képeket húzhat.

Ez a vezérlő (és ezért a CImageList osztály) csak a Windows 95/98 és a Windows NT 3.51-es és újabb verzióiban futó programokhoz érhető el.

A használatról CImageListtovábbi információt a Vezérlők és a Használat CImageListcímű témakörben talál.

Öröklési hierarchia

CObject

CImageList

Követelmények

fejléc:afxcmn.h

CImageList::Add

Hívja meg ezt a függvényt, ha egy vagy több képet vagy ikont szeretne hozzáadni egy képlistához.

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

int Add(
    CBitmap* pbmImage,
    COLORREF crMask);

int Add(HICON hIcon);

Paraméterek

pbmImage
Mutasson a képet vagy képeket tartalmazó bitképre. A rendszer a képek számát a bitkép szélességéből következteti.

pbmMask
Mutasson a maszkot tartalmazó bitképre. Ha a rendszer nem használ maszkot a képlistához, a rendszer figyelmen kívül hagyja ezt a paramétert.

crMask
A maszk létrehozásához használt szín. Az adott bitkép színének minden képpontja fekete színűre változik, és a maszk megfelelő bitje egyre van állítva.

hIcon
Az új kép bitképét és maszkját tartalmazó ikon kezelése.

Visszaadott érték

Az első új rendszerkép nulla alapú indexe, ha sikeres; egyéb esetben - 1.

Megjegyzések

Ön felelős az ikonfogópont felszabadításáért, ha elkészült vele.

példa

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

A függvény meghívásával képlistát csatolhat egy CImageList objektumhoz.

BOOL Attach(HIMAGELIST hImageList);

Paraméterek

hImageList
Egy képlistaobjektum leírója.

Visszaadott érték

Nemzero, ha a melléklet sikeres volt; egyéb esetben 0.

példa

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

Hívja meg ezt a függvényt egy kép húzásának megkezdéséhez.

BOOL BeginDrag(
    int nImage,
    CPoint ptHotSpot);

Paraméterek

nImage
A húzandó kép nullaalapú indexe.

ptHotSpot
A kezdő húzási pozíció koordinátái (általában a kurzor pozíciója). A koordináták a kép bal felső sarkához viszonyítva vannak.

Visszaadott érték

Nonzero, ha sikeres; egyéb esetben 0.

Megjegyzések

Ez a függvény létrehoz egy ideiglenes képlistát, amelyet húzáshoz használnak. A kép egyesíti a megadott képet és annak maszkját az aktuális kurzorral. A következő WM_MOUSEMOVE üzenetekre válaszul a tagfüggvény használatával áthelyezheti a DragMove húzási képet. Az húzási művelet befejezéséhez használhatja a tagfüggvényt EndDrag .

példa

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

Egy CImageList objektumot hoz létre.

CImageList();

CImageList::Copy

Ez a tagfüggvény implementálja a Win32 függvény ImageList_Copyviselkedését a Windows SDK-ban leírtak szerint.

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

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

Paraméterek

iDst
A másolási művelet céljaként használni kívánt kép nulla alapú indexe.

iSrc
A másolási művelet forrásaként használni kívánt kép nulla alapú indexe.

uFlags
A végrehajtandó másolási művelet típusát meghatározó bitjelölő érték. Ez a paraméter a következő értékek egyike lehet:

Érték Értelmezés
ILCF_MOVE A forrásképet a rendszer a célrendszerkép indexére másolja. Ez a művelet egy adott kép több példányát eredményezi. A ILCF_MOVE az alapértelmezett.
ILCF_SWAP A forrás- és célrendszerképek pozíciót cserélnek a képlistában.

pSrc
Mutató egy CImageList objektumra, amely a másolási művelet célja.

Visszaadott érték

Nonzero, ha sikeres; ellenkező esetben nulla.

példa

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

Inicializál egy képlistát, és csatolja egy CImageList objektumhoz.

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

Paraméterek

cx
Az egyes képek méretei képpontban.

cy
Az egyes képek méretei képpontban.

nFlags
Megadja a létrehozandó képlista típusát. Ez a paraméter a következő értékek kombinációja lehet, de csak egy ILC_COLOR értéket tartalmazhat.

Érték Értelmezés
ILC_COLOR Használja az alapértelmezett viselkedést, ha a többi ILC_COLOR* jelölő egyike sincs megadva. Az alapértelmezett ILC_COLOR4érték általában ; a régebbi megjelenítési illesztőprogramok esetében azonban az alapértelmezett érték.ILC_COLORDDB
ILC_COLOR4 Használjon egy 4 bites (16 színű) eszközfüggetlen bitképet (DIB) a képlista bitképeként.
ILC_COLOR8 Használjon egy 8 bites DIB-szakaszt. A színtáblázat színei megegyeznek a félhangos palettával.
ILC_COLOR16 Használjon 16 bites (32/64k színű) DIB-szakaszt.
ILC_COLOR24 Használjon 24 bites DIB-szakaszt.
ILC_COLOR32 Használjon egy 32 bites DIB-szakaszt.
ILC_COLORDDB Eszközfüggő bitkép használata.
ILC_MASK Maszkot használ. A képlista két bitképet tartalmaz, amelyek közül az egyik egy maszkként használt monokróm bitkép. Ha ez az érték nem szerepel a listán, a képlista csak egy bitképet tartalmaz. A maszkolt képekről további információt a Képlista rajzai című témakörben talál.

nInitial
A képlista eredetileg tartalmazott képek száma.

nGrow
Azon képek száma, amelyekkel a képlista növekedhet, ha a rendszernek át kell méreteznie a listát, hogy helyet biztosítsunk az új képeknek. Ez a paraméter az átméretezett képlista által tartalmazhatott új képek számát jelöli.

nBitmapID
A képlistához társítandó bitkép erőforrásazonosítói.

crMask
Maszk létrehozásához használt szín. A megadott bitkép színének minden képpontja fekete színűre változik, a maszkban lévő megfelelő bit pedig egyre van állítva.

lpszBitmapID
A rendszerképek erőforrásazonosítóit tartalmazó sztring.

imagelist1
Hivatkozás egy CImageList objektumra.

nImage1
Az első meglévő kép indexe.

imagelist2
Hivatkozás egy CImageList objektumra.

nImage2
A második meglévő kép indexe.

dx
A második kép x tengelyének eltolása az első képhez való viszonyban képpontban.

dy
A második kép y tengelyének eltolása az első képhez való viszonyban képpontban.

pImageList
Egy objektumra mutató CImageList mutató.

Visszaadott érték

Nonzero, ha sikeres; egyéb esetben 0.

Megjegyzések

Két lépésben hozhat létre egy CImageList elemet. Először hívja meg a konstruktort, majd hívja meg Create, amely létrehozza a képlistát, és csatolja az CImageList objektumhoz.

példa

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

CImageList::DeleteImageList

A függvény meghívása képlista törléséhez.

BOOL DeleteImageList();

Visszaadott érték

Nonzero, ha sikeres; egyéb esetben 0.

példa

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

CImageList::DeleteTempMap

Az üresjárati idő kezelője automatikusan meghívja, CWinApp törli a DeleteTempMapCImageList által létrehozott ideiglenes objektumokat, de nem semmisít meg az objektumokkal hImageList ideiglenesen társított leírókat (ImageList).

static void PASCAL DeleteTempMap();

példa

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

CImageList::Detach

A függvény meghívásával leválaszthat egy képlistaobjektumot egy CImageList objektumról.

HIMAGELIST Detach();

Visszaadott érték

Egy képlistaobjektum leírója.

Megjegyzések

Ez a függvény egy fogópontot ad vissza a képlista-objektumnak.

példa

Lásd a példát a CImageList::Attach.

CImageList::DragEnter

Az húzási művelet során zárolja a megadott pWndLock ablak frissítéseit, és megjeleníti a húzási képet a megadott pointpozícióban.

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

Paraméterek

pWndLock
Mutasson arra az ablakra, amely az húzási képet birtokolja.

point
A húzási kép megjelenítésének helye. A koordináták az ablak bal felső sarkához vannak viszonyítva (nem az ügyfélterülethez).

Visszaadott érték

Nonzero, ha sikeres; egyéb esetben 0.

Megjegyzések

A koordináták az ablak bal felső sarkához viszonyítottak, ezért a koordináták megadásakor kompenzálnia kell az ablakelemek szélességét, például a szegélyt, a címsort és a menüsávot.

Ha pWndLock igen NULL, ez a függvény az asztali ablakhoz társított megjelenítési környezetben rajzolja meg a képet, a koordináták pedig a képernyő bal felső sarkához viszonyítva.

Ez a függvény zárolja az adott ablak összes többi frissítését az húzási művelet során. Ha az húzási művelet során bármilyen rajzot el kell végeznie, például ki kell emelnie egy húzási művelet célját, a függvény használatával ideiglenesen elrejtheti az CImageList::DragLeave áthúzott képet.

példa

Lásd a példát a CImageList::BeginDrag.

CImageList::DragLeave

Feloldja a megadott pWndLock ablakot, és elrejti a húzási képet, lehetővé téve az ablak frissítését.

static BOOL PASCAL DragLeave(CWnd* pWndLock);

Paraméterek

pWndLock
Mutasson arra az ablakra, amely az húzási képet birtokolja.

Visszaadott érték

Nonzero, ha sikeres; egyéb esetben 0.

példa

Lásd a példát a CImageList::EndDrag.

CImageList::DragMove

Hívja meg ezt a függvényt a húzási művelet során húzott kép áthelyezéséhez.

static BOOL PASCAL DragMove(CPoint pt);

Paraméterek

pt
Új húzási pozíció.

Visszaadott érték

Nonzero, ha sikeres; egyéb esetben 0.

Megjegyzések

Ezt a függvényt általában egy WM_MOUSEMOVE üzenetre válaszolva hívják meg. Húzási művelet megkezdéséhez használja a tagfüggvényt BeginDrag .

példa

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

   CDialog::OnMouseMove(nFlags, point);
}

CImageList::DragShowNolock

Megjeleníti vagy elrejti az húzási képet egy húzási művelet során, az ablak zárolása nélkül.

static BOOL PASCAL DragShowNolock(BOOL bShow);

Paraméterek

bShow
Megadja, hogy az húzási kép megjelenjen-e.

Visszaadott érték

Nonzero, ha sikeres; egyéb esetben 0.

Megjegyzések

A CImageList::DragEnter függvény egy húzási művelet során zárolja az ablak összes frissítését. Ez a függvény azonban nem zárolja az ablakot.

CImageList::Draw

Hívja meg ezt a függvényt, hogy megrajzolja a húzási művelet során húzott képet.

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

Paraméterek

pDC
Mutasson a céleszköz környezetére.

nImage
A rajzolni kívánt kép nullaalapú indexe.

pt
A rajz helye a megadott eszközkörnyezetben.

nStyle
A rajzstílust meghatározó jelölő. Ezek közül az értékek közül egy vagy több lehet:

Érték Értelmezés
ILD_BLEND25, ILD_FOCUS Rajzolja a képet, 25 százalékot keverve a rendszerkiemelő színével. Ennek az értéknek nincs hatása, ha a képlista nem tartalmaz maszkot.
\, \, \ Rajzolja a képet, és 50%-ot kever a rendszerkiemelés színével. Ennek az értéknek nincs hatása, ha a képlista nem tartalmaz maszkot.
ILD_MASK Rajzolja a maszkot.
ILD_NORMAL A kép rajzolása a képlista háttérszínével. Ha a háttérszín az CLR_NONE érték, a kép áttetszően rajzolódik meg a maszk használatával.
ILD_TRANSPARENT A képet a háttérszíntől függetlenül transzparensen rajzolja meg a maszk használatával.

Visszaadott érték

Nonzero, ha sikeres; egyéb esetben 0.

példa

Lásd a példát a CImageList::SetOverlayImage.

CImageList::DrawEx

Képlistaelem rajzolása a megadott eszközkörnyezetben.

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

Paraméterek

pDC
Mutasson a céleszköz környezetére.

nImage
A rajzolni kívánt kép nullaalapú indexe.

pt
A rajz helye a megadott eszközkörnyezetben.

sz
A kép bal felső sarkához képest rajzolni kívánt rész mérete. Lásd dx és dy be ImageList_DrawEx a Windows SDK-ban.

clrBk
A kép háttérszíne. Lásd rgbBk a Windows SDK-ban ImageList_DrawEx .

clrFg
A kép előtérszíne. Lásd rgbFg a Windows SDK-ban ImageList_DrawEx .

nStyle
A rajzstílust meghatározó jelölő. Lásd fStyle a Windows SDK-ban ImageList_DrawEx .

Visszaadott érték

Nonzero, ha sikeres; egyéb esetben 0.

Megjegyzések

A függvény a megadott rajzstílust használja, és egyesíti a képet a megadott színnel.

példa

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

CImageList::DrawIndirect

Hívja meg ezt a tagfüggvényt, hogy képet rajzoljon egy képlistából.

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

Paraméterek

pimldp
A rajzművelettel kapcsolatos információkat tartalmazó struktúra mutatója IMAGELISTDRAWPARAMS .

pDC
Mutató a céleszköz környezetére. Ha végzett vele, törölnie kell ezt az CDC objektumot.

nImage
A megrajzolandó kép nulla alapú indexe.

pt
Az POINT x és y koordinátákat tartalmazó struktúra, ahol a kép megrajzolható.

sz
A SIZE megrajzolandó kép méretét jelző struktúra.

ptOrigin
X POINT és y koordinátákat tartalmazó struktúra, amely a rajzművelet bal felső sarkát adja meg magának a képnek a tekintetében. Az x koordinátától balra és az y koordináta fölötti kép képpontjai nem lesznek rajzolva.

fStyle
A rajzstílust és opcionálisan az átfedő képet meghatározó jelző. Az átfedő képről további információt a Megjegyzések szakaszban talál. Az MFC alapértelmezett implementációja ILD_NORMALa képlista háttérszínével rajzolja meg a képet. Ha a háttérszín az CLR_NONE érték, a rendszer a képet áttetszően, maszk használatával rajzolja meg.

Az egyéb lehetséges stílusokat a fStyle struktúra tagja IMAGELISTDRAWPARAMS ismerteti.

dwRop
Raszterműveleti kódot megjelölő érték. Ezek a kódok határozzák meg, hogy a forrás téglalap színadatai hogyan lesznek kombinálva a cél téglalap színadataival a végső szín eléréséhez. Az MFC alapértelmezett implementációja a SRCCOPYforrás téglalapját közvetlenül a cél téglalapba másolja. Ez a paraméter figyelmen kívül lesz hagyva, ha a fStyle paraméter nem tartalmazza a jelölőt ILD_ROP .

Az egyéb lehetséges értékeket a dwRop struktúra tagja IMAGELISTDRAWPARAMS írja le.

rgbBack
A kép háttérszíne alapértelmezés szerint CLR_DEFAULT. Ez a paraméter lehet alkalmazás által definiált RGB-érték vagy az alábbi értékek egyike:

Érték Értelmezés
CLR_DEFAULT Alapértelmezett háttérszín. A rendszer a képlista háttérszínével rajzolja meg a képet.
CLR_NONE Nincs háttérszín. A kép transzparensen lesz rajzolva.

rgbFore
A kép előtérszíne alapértelmezés szerint CLR_DEFAULT. Ez a paraméter lehet alkalmazás által definiált RGB-érték vagy az alábbi értékek egyike:

Érték Értelmezés
CLR_DEFAULT Alapértelmezett előtérszín. A rendszer a rendszerkiemelés színével rajzolja meg a képet előtérszínként.
CLR_NONE Nincs színkeverés. A rendszer a képet a céleszköz-környezet színével keveri.

Ezt a paramétert csak akkor használja a rendszer, ha fStyle tartalmazza a jelölőtILD_BLEND25.ILD_BLEND50

fState
A rajz állapotát meghatározó jelölő. Ez a tag tartalmazhat egy vagy több képlista állapotjelzőt.

Frame
Befolyásolja a telített és alfa-keverési effektusok viselkedését.

A használat során ILS_SATURATEez a tag az RGB triplet egyes színösszetevőihez hozzáadott értéket tárolja az ikon minden egyes képpontja esetében.

A használat során ILS_APLHAez a tag tartalmazza az alfa csatorna értékét. Ez az érték 0 és 255 között lehet, a 0 teljesen átlátszó, a 255 pedig teljesen átlátszatlan.

crEffect
Ragyogás COLORREF és árnyékeffektusok esetén használt érték.

Visszaadott érték

TRUE ha a kép sikeresen megrajzolt; egyéb esetben FALSE.

Megjegyzések

Használja az első verziót, ha saját maga szeretné kitölteni a Win32-struktúrát. Használja a második verziót, ha ki szeretné használni az MFC egy vagy több alapértelmezett argumentumát, vagy kerülje a struktúra kezelését.

Az átfedő kép az elsődleges kép fölé rajzolt kép, amelyet ebben a tagfüggvényben a nImage paraméter határoz meg. Átfedő maszk rajzolása a Draw tagfüggvény és a makróval INDEXTOOVERLAYMASK megadott átfedésmaszk egy-alapú indexével.

példa

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

A függvény meghívása húzási művelet befejezéséhez.

static void PASCAL EndDrag();

Megjegyzések

Húzási művelet megkezdéséhez használja a tagfüggvényt BeginDrag .

példa

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

A függvény meghívásával ikont hozhat létre egy kép és annak kapcsolódó maszkja alapján egy képlistában.

HICON ExtractIcon(int nImage);

Paraméterek

nImage
A kép nullaalapú indexe.

Visszaadott érték

Az ikon kezelése, ha sikeres; egyéb esetben NULL.

Megjegyzések

Ez a módszer a makró viselkedésére támaszkodik az ImageList_ExtractIcon ikon létrehozásához. Az ikonok létrehozásával és törlésével kapcsolatos további információkért tekintse meg a ImageList_ExtractIcon makrót.

példa

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

Egy objektumra CImageList mutató mutatót ad vissza, ha egy képlistához fogópontot ad.

static CImageList* PASCAL FromHandle(HIMAGELIST hImageList);

Paraméterek

hImageList
Megadja a képlistát.

Visszaadott érték

Az objektumra mutató CImageList mutató, ha sikeres; ellenkező esetben NULL.

Megjegyzések

Ha a CImageList fogóponthoz még nincs csatolva egy ideiglenes objektum, akkor egy ideiglenes CImageList objektum jön létre és csatolva. Ez az ideiglenes CImageList objektum csak addig érvényes, amíg az alkalmazás következő alkalommal nem rendelkezik tétlenségi idővel az eseményhurkában, és ekkor az összes ideiglenes objektum törlődik.

példa

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

Egy objektumra CImageList mutató mutatót ad vissza, ha egy képlistához fogópontot ad.

static CImageList* PASCAL FromHandlePermanent(HIMAGELIST hImageList);

Paraméterek

hImageList
Megadja a képlistát.

Visszaadott érték

Az objektumra mutató CImageList mutató, ha sikeres; ellenkező esetben NULL.

Megjegyzések

Ha egy CImageList objektum nincs csatolva a fogóponthoz, NULL a függvény visszaadja.

példa

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

Hívja meg ezt a függvényt egy képlista aktuális háttérszínének lekéréséhez.

COLORREF GetBkColor() const;

Visszaadott érték

Az objektum háttérszínének CImageList RGB színértéke.

példa

Lásd a példát a CImageList::SetBkColor.

CImageList::GetDragImage

Lekéri a húzáshoz használt ideiglenes képlistát.

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

Paraméterek

lpPoint
Az aktuális húzási pozíciót POINT fogadó struktúra címe.

lpPointHotSpot
Olyan POINT struktúra címe, amely a húzási kép eltolását kapja a húzási pozícióhoz képest.

Visszaadott érték

Ha sikeres, a húzáshoz használt ideiglenes képlistára mutató mutató; egyéb esetben. NULL

CImageList::GetImageCount

Hívja meg ezt a függvényt a képek listájában lévő képek számának lekéréséhez.

int GetImageCount() const;

Visszaadott érték

A képek száma.

példa

Lásd a példát a CImageList::ExtractIcon.

CImageList::GetImageInfo

Hívja meg ezt a függvényt egy kép információinak lekéréséhez.

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

Paraméterek

nImage
A kép nullaalapú indexe.

pImageInfo
Mutasson egy IMAGEINFO olyan struktúrára, amely információt kap a képről. Az ebben a struktúrában található információk a kép bitképeinek közvetlen kezelésére használhatók.

Visszaadott érték

Nonzero, ha sikeres; egyéb esetben 0.

Megjegyzések

A IMAGEINFO struktúra egy képlistán lévő képre vonatkozó információkat tartalmaz.

CImageList::GetSafeHandle

Hívja meg ezt a függvényt az adattag lekéréséhez m_hImageList .

HIMAGELIST GetSafeHandle() const;

Visszaadott érték

A csatolt képlistához tartozó fogópont; egyéb esetben NULL , ha nincs csatolva objektum.

példa

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

CImageList::m_hImageList

Az objektumhoz csatolt képlista leírója.

HIMAGELIST m_hImageList;

Megjegyzések

Az m_hImageList adattag egy nyilvános változótípus HIMAGELIST.

példa

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

CImageList::operator HIMAGELIST

Ezzel az operátorral lekérheti az objektum csatolt fogópontját CImageList .

operator HIMAGELIST() const;

Visszaadott érték

Ha sikeres, az objektum által CImageList képviselt képlistához tartozó fogópont; ellenkező esetben NULL.

Megjegyzések

Ez az operátor egy öntvény operátor, amely támogatja az HIMAGELIST objektumok közvetlen használatát.

példa

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

CImageList::Read

Hívja meg ezt a függvényt, hogy egy archív képlistát olvasson be.

BOOL Read(CArchive* pArchive);

Paraméterek

pArchive
Egy olyan objektumra CArchive mutató mutató, amelyből a képlistát el kell olvasni.

Visszaadott érték

Nonzero, ha sikeres; egyéb esetben 0.

példa

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

A függvény meghívásával eltávolíthat egy képet egy képlista-objektumból.

BOOL Remove(int nImage);

Paraméterek

nImage
Az eltávolítandó kép nullaalapú indexe.

Visszaadott érték

Nonzero, ha sikeres; egyéb esetben 0.

Megjegyzések

Az alábbi nImage elemek mostantól egy pozícióval lejjebb lépnek. Ha például egy képlista két elemet tartalmaz, az első elem törlése miatt a fennmaradó elem most az első helyen lesz. nImage=0 az első pozícióban lévő elemhez.

példa

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

CImageList::Replace

Hívja meg ezt a függvényt, ha egy képlistában lévő képet lecserél egy új képre.

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

int Replace(
    int nImage,
    HICON hIcon);

Paraméterek

nImage
A lecserélendő kép nullaalapú indexe.

pbmImage
A képet tartalmazó bitképre mutató mutató.

pbmMask
A maszkot tartalmazó bittérképre mutató mutató. Ha a rendszer nem használ maszkot a képlistához, a rendszer figyelmen kívül hagyja ezt a paramétert.

hIcon
Az új kép bitképét és maszkát tartalmazó ikon fogópontja.

Visszaadott érték

A visszaadott BOOL verzió sikertelen lesz, ha sikeres, ellenkező esetben 0.

A visszaadott int verzió a rendszerkép nulla alapú indexét adja vissza, ha sikeres, ellenkező esetben – 1.

Megjegyzések

Hívja meg ezt a tagfüggvényt a hívás SetImageCount után, hogy az új, érvényes képeket rendelje hozzá a helyőrző képindexszámokhoz.

példa

Lásd a példát a CImageList::SetImageCount.

CImageList::SetBkColor

Hívja meg ezt a függvényt egy képlista háttérszínének beállításához.

COLORREF SetBkColor(COLORREF cr);

Paraméterek

cr
A beállításhoz háttérszínt kell megadni. CLR_NONELehet . Ebben az esetben a képek a maszk használatával transzparensen lesznek rajzolva.

Visszaadott érték

Az előző háttérszín, ha sikeres; egyéb esetben CLR_NONE.

példa

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

CImageList::SetDragCursorImage

Új húzási képet hoz létre az adott kép (általában egérkurzor képe) és az aktuális húzási kép kombinálásával.

BOOL SetDragCursorImage(
    int nDrag,
    CPoint ptHotSpot);

Paraméterek

nDrag
Az húzással kombinálandó új kép indexe.

ptHotSpot
A gyakori elérésű pont pozíciója az új képen.

Visszaadott érték

Nonzero, ha sikeres; egyéb esetben 0.

Megjegyzések

Mivel a húzási függvények egy húzási művelet során az új képet használják, a Windows ShowCursor függvénnyel el kell rejteni a tényleges egérmutatót a hívás CImageList::SetDragCursorImageután. Ellenkező esetben előfordulhat, hogy a rendszer két egérmutatóval rendelkezik az húzási művelet időtartamára.

CImageList::SetImageCount

Hívja meg ezt a tagfüggvényt CImageList az objektumban lévő képek számának alaphelyzetbe állításához.

BOOL SetImageCount(UINT uNewCount);

Paraméterek

uNewCount
A képlistában szereplő képek új teljes számát meghatározó érték.

Visszaadott érték

Nonzero, ha sikeres; ellenkező esetben nulla.

Megjegyzések

Ha ezt a tagfüggvényt úgy hívja meg, hogy növelje a képek számát a képlistában, akkor minden további képre meghívva Replace rendelje hozzá az új indexeket az érvényes képekhez. Ha nem tudja érvényes képekhez rendelni az indexeket, az új képeket létrehozó rajzműveletek kiszámíthatatlanok lesznek.

Ha ezzel a függvénnyel csökkenti egy képlista méretét, a csonkolt képek felszabadulnak.

példa

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

Hívja meg ezt a függvényt, ha hozzáadja egy kép nullaalapú indexét az átfedésmaszkként használandó képek listájához.

BOOL SetOverlayImage(
    int nImage,
    int nOverlay);

Paraméterek

nImage
Átfedési maszkként használandó kép nullaalapú indexe.

nOverlay
Az átfedő maszk egy-alapú indexe.

Visszaadott érték

Nonzero, ha sikeres; egyéb esetben 0.

Megjegyzések

Legfeljebb négy index adható hozzá a listához.

Az átfedő maszk egy másik kép fölé transzparensen rajzolt kép. Átfedő maszk rajzolása egy kép fölé a CImageList::Draw tagfüggvény és a makróval INDEXTOOVERLAYMASK megadott átfedő maszk egy-alapú indexével.

példa

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

Ennek a függvénynek a meghívásával képlista-objektumot írhat egy archívumba.

BOOL Write(CArchive* pArchive);

Paraméterek

pArchive
Egy olyan objektumra CArchive mutató mutató, amelyben a rendszerképlistát tárolni szeretné.

Visszaadott érték

Nonzero, ha sikeres; egyéb esetben 0.

példa

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

Lásd még

CObject osztály
hierarchiadiagram
CListCtrl osztály
CTabCtrl osztály