Udostępnij za pośrednictwem


CImageList Klasa

Udostępnia funkcje kontrolki listy typowych obrazów systemu Windows.

Składnia

class CImageList : public CObject

Elementy członkowskie

Konstruktory publiczne

Nazwa/nazwisko opis
CImageList::CImageList CImageList Tworzy obiekt.

Metody publiczne

Nazwa/nazwisko opis
CImageList::Add Dodaje obraz lub obrazy do listy obrazów.
CImageList::Attach Dołącza listę obrazów do CImageList obiektu.
CImageList::BeginDrag Rozpoczyna przeciąganie obrazu.
CImageList::Copy Kopiuje obraz w CImageList obiekcie.
CImageList::Create Inicjuje listę obrazów i dołącza ją do CImageList obiektu.
CImageList::DeleteImageList Usuwa listę obrazów.
CImageList::DeleteTempMap Wywoływana CWinApp przez program obsługi bezczynności w celu usunięcia dowolnego obiektu tymczasowego utworzonego CImageList przez FromHandleprogram .
CImageList::Detach Odłącza obiekt listy obrazów od CImageList obiektu i zwraca uchwyt do listy obrazów.
CImageList::DragEnter Blokuje aktualizacje podczas operacji przeciągania i wyświetla obraz przeciągania w określonej pozycji.
CImageList::DragLeave Odblokowuje okno i ukrywa obraz przeciągania, aby można było zaktualizować okno.
CImageList::DragMove Przenosi obraz przeciągany podczas operacji przeciągania i upuszczania.
CImageList::DragShowNolock Pokazuje lub ukrywa obraz przeciągania podczas operacji przeciągania bez blokowania okna.
CImageList::Draw Rysuje obraz przeciągany podczas operacji przeciągania i upuszczania.
CImageList::DrawEx Rysuje element listy obrazów w określonym kontekście urządzenia. Funkcja używa określonego stylu rysunku i łączy obraz z określonym kolorem.
CImageList::DrawIndirect Rysuje obraz z listy obrazów.
CImageList::EndDrag Kończy operację przeciągania.
CImageList::ExtractIcon Tworzy ikonę na podstawie obrazu i maski na liście obrazów.
CImageList::FromHandle Zwraca wskaźnik do CImageList obiektu, gdy dana dojście do listy obrazów. CImageList Jeśli obiekt nie jest dołączony do uchwytu, zostanie utworzony i dołączony obiekt tymczasowyCImageList.
CImageList::FromHandlePermanent Zwraca wskaźnik do CImageList obiektu, gdy dana dojście do listy obrazów. CImageList Jeśli obiekt nie jest dołączony do uchwytu, zwracana jest wartość NULL.
CImageList::GetBkColor Pobiera bieżący kolor tła dla listy obrazów.
CImageList::GetDragImage Pobiera tymczasową listę obrazów używaną do przeciągania.
CImageList::GetImageCount Pobiera liczbę obrazów na liście obrazów.
CImageList::GetImageInfo Pobiera informacje o obrazie.
CImageList::GetSafeHandle Pobiera plik m_hImageList.
CImageList::Read Odczytuje listę obrazów z archiwum.
CImageList::Remove Usuwa obraz z listy obrazów.
CImageList::Replace Zamienia obraz na liście obrazów na nowy obraz.
CImageList::SetBkColor Ustawia kolor tła listy obrazów.
CImageList::SetDragCursorImage Tworzy nowy obraz przeciągania.
CImageList::SetImageCount Resetuje liczbę obrazów na liście obrazów.
CImageList::SetOverlayImage Dodaje indeks zera obrazu do listy obrazów, które mają być używane jako maski nakładki.
CImageList::Write Zapisuje listę obrazów w archiwum.

Operatory publiczne

Nazwa/nazwisko opis
CImageList::operator HIMAGELIST HIMAGELIST Zwraca element dołączony do elementu CImageList.

Publiczne elementy członkowskie danych

Nazwa/nazwisko opis
CImageList::m_hImageList Uchwyt zawierający listę obrazów dołączoną do tego obiektu.

Uwagi

"Lista obrazów" to kolekcja obrazów o takim samym rozmiarze, z których każdy może być określany przez indeks oparty na zera. Listy obrazów służą do wydajnego zarządzania dużymi zestawami ikon lub map bitowych. Wszystkie obrazy na liście obrazów są zawarte w jednej, szerokiej mapie bitowej w formacie urządzenia ekranu. Lista obrazów może również zawierać monochromatyczną mapę bitową zawierającą maski używane do rysowania obrazów w sposób przezroczysty (styl ikony). Interfejs programowania aplikacji Microsoft Win32 (API) udostępnia funkcje listy obrazów, które umożliwiają rysowanie obrazów, tworzenie i niszczenie list obrazów, dodawanie i usuwanie obrazów, zastępowanie obrazów, scalanie obrazów i przeciąganie obrazów.

Ta kontrolka CImageList (i dlatego klasa) jest dostępna tylko dla programów działających w systemach Windows 95/98 i Windows NT w wersji 3.51 lub nowszej.

Aby uzyskać więcej informacji na temat korzystania z programu CImageList, zobacz Controls and Using CImageList.

Hierarchia dziedziczenia

CObject

CImageList

Wymagania

Nagłówek: afxcmn.h

CImageList::Add

Wywołaj tę funkcję, aby dodać co najmniej jeden obraz lub ikonę do listy obrazów.

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

int Add(
    CBitmap* pbmImage,
    COLORREF crMask);

int Add(HICON hIcon);

Parametry

pbmImage
Wskaźnik do mapy bitowej zawierającej obraz lub obrazy. Liczba obrazów jest wnioskowana z szerokości mapy bitowej.

pbmMask
Wskaźnik do mapy bitowej zawierającej maskę. Jeśli z listą obrazów nie jest używana żadna maska, ten parametr jest ignorowany.

crMask
Kolor używany do generowania maski. Każdy piksel tego koloru w danej mapie bitowej jest zmieniany na, a odpowiedni bit w masce jest ustawiony na jeden.

hIcon
Uchwyt ikony zawierającej mapę bitową i maskę dla nowego obrazu.

Wartość zwracana

Indeks oparty na zera pierwszego nowego obrazu, jeśli się powiedzie; w przeciwnym razie - 1.

Uwagi

Użytkownik jest odpowiedzialny za zwolnienie uchwytu ikony po zakończeniu pracy z nim.

Przykład

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

Wywołaj tę funkcję, aby dołączyć listę obrazów do CImageList obiektu.

BOOL Attach(HIMAGELIST hImageList);

Parametry

hImageList
Uchwyt do obiektu listy obrazów.

Wartość zwracana

Nonzero, jeśli załącznik zakończył się pomyślnie; w przeciwnym razie 0.

Przykład

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

Wywołaj tę funkcję, aby rozpocząć przeciąganie obrazu.

BOOL BeginDrag(
    int nImage,
    CPoint ptHotSpot);

Parametry

nImage
Indeks na podstawie zera obrazu do przeciągnięcia.

ptHotSpot
Współrzędne pozycji przeciągania początkowego (zazwyczaj położenie kursora). Współrzędne są względne względem lewego górnego rogu obrazu.

Wartość zwracana

Bezzerowe, jeśli się powiedzie; w przeciwnym razie 0.

Uwagi

Ta funkcja tworzy tymczasową listę obrazów używaną do przeciągania. Obraz łączy określony obraz i maskę z bieżącym kursorem. W odpowiedzi na kolejne WM_MOUSEMOVE komunikaty można przenieść obraz przeciągania przy użyciu funkcji składowej DragMove . Aby zakończyć operację przeciągania, możesz użyć funkcji składowej EndDrag .

Przykład

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 Tworzy obiekt.

CImageList();

CImageList::Copy

Ta funkcja składowa implementuje zachowanie funkcji ImageList_CopyWin32 zgodnie z opisem w zestawie 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
Indeks obrazu oparty na zera, który ma być używany jako miejsce docelowe operacji kopiowania.

iSrc
Indeks obrazu oparty na zera, który ma być używany jako źródło operacji kopiowania.

uFlags
Wartość flagi bitowej określająca typ operacji kopiowania do wykonania. Ten parametr może być jedną z następujących wartości:

Wartość Znaczenie
ILCF_MOVE Obraz źródłowy jest kopiowany do indeksu obrazu docelowego. Ta operacja powoduje wiele wystąpień danego obrazu. Wartość domyślna to ILCF_MOVE.
ILCF_SWAP Obrazy źródłowe i docelowe wymieniają pozycje na liście obrazów.

pSrc
Wskaźnik do CImageList obiektu, który jest obiektem docelowym operacji kopiowania.

Wartość zwracana

Bezzerowe, jeśli się powiedzie; w przeciwnym razie zero.

Przykład

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

Inicjuje listę obrazów i dołącza ją do CImageList obiektu.

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
Wymiary każdego obrazu w pikselach.

cy
Wymiary każdego obrazu w pikselach.

nFlags
Określa typ listy obrazów do utworzenia. Ten parametr może być kombinacją następujących wartości, ale może zawierać tylko jedną z ILC_COLOR wartości.

Wartość Znaczenie
ILC_COLOR Użyj zachowania domyślnego, jeśli żadna z innych ILC_COLOR* flag nie jest określona. Zazwyczaj wartość domyślna to ILC_COLOR4; ale w przypadku starszych sterowników wyświetlania wartość domyślna to ILC_COLORDDB.
ILC_COLOR4 Użyj 4-bitowej (16-bitowej) niezależnej od urządzenia sekcji mapy bitowej (DIB) jako mapy bitowej dla listy obrazów.
ILC_COLOR8 Użyj 8-bitowej sekcji DIB. Kolory używane w tabeli kolorów są takie same jak paleta półtonów.
ILC_COLOR16 Użyj 16-bitowej sekcji DIB (kolor 32/64k).
ILC_COLOR24 Użyj 24-bitowej sekcji DIB.
ILC_COLOR32 Użyj 32-bitowej sekcji DIB.
ILC_COLORDDB Użyj mapy bitowej zależnej od urządzenia.
ILC_MASK Używa maski. Lista obrazów zawiera dwie mapy bitowe, z których jedna jest monochromatyczną mapą bitową używaną jako maska. Jeśli ta wartość nie jest dołączona, lista obrazów zawiera tylko jedną mapę bitową. Aby uzyskać dodatkowe informacje na temat zamaskowanych obrazów, zobacz Rysowanie obrazów z listy obrazów.

nInitial
Liczba obrazów, które początkowo zawiera lista obrazów.

nGrow
Liczba obrazów, według których lista obrazów może rosnąć, gdy system musi zmienić rozmiar listy, aby zapewnić miejsce na nowe obrazy. Ten parametr reprezentuje liczbę nowych obrazów, które może zawierać lista obrazów o zmienionym rozmiarze.

nBitmapID
Identyfikatory zasobów mapy bitowej, które mają być skojarzone z listą obrazów.

crMask
Kolor używany do generowania maski. Każdy piksel tego koloru w określonej mapie bitowej jest zmieniany na, a odpowiedni bit w masce jest ustawiony na jeden.

lpszBitmapID
Ciąg zawierający identyfikatory zasobów obrazów.

imagelist1
Odwołanie do CImageList obiektu.

nImage1
Indeks pierwszego istniejącego obrazu.

imagelist2
Odwołanie do CImageList obiektu.

nImage2
Indeks drugiego istniejącego obrazu.

dx
Przesunięcie osi x drugiego obrazu w relacji z pierwszym obrazem w pikselach.

dy
Przesunięcie osi y drugiego obrazu w relacji z pierwszym obrazem w pikselach.

pImageList
Wskaźnik do CImageList obiektu.

Wartość zwracana

Bezzerowe, jeśli się powiedzie; w przeciwnym razie 0.

Uwagi

Utworzysz element CImageList w dwóch krokach. Najpierw wywołaj konstruktor, a następnie wywołaj Createmetodę , która tworzy listę obrazów i dołącza ją do CImageList obiektu.

Przykład

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

CImageList::DeleteImageList

Wywołaj tę funkcję, aby usunąć listę obrazów.

BOOL DeleteImageList();

Wartość zwracana

Bezzerowe, jeśli się powiedzie; w przeciwnym razie 0.

Przykład

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

CImageList::DeleteTempMap

Wywoływana automatycznie przez CWinApp program obsługi bezczynności usuwa DeleteTempMap wszystkie obiekty tymczasowe CImageList utworzone przez FromHandle, ale nie niszczy żadnych dojść ( hImageList) tymczasowo skojarzonych z ImageList obiektami.

static void PASCAL DeleteTempMap();

Przykład

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

CImageList::Detach

Wywołaj tę funkcję, aby odłączyć obiekt listy obrazów CImageList od obiektu.

HIMAGELIST Detach();

Wartość zwracana

Uchwyt do obiektu listy obrazów.

Uwagi

Ta funkcja zwraca uchwyt do obiektu listy obrazów.

Przykład

Zobacz przykład dla elementu CImageList::Attach.

CImageList::DragEnter

Podczas operacji przeciągania program blokuje aktualizacje okna określonego przez pWndLock program i wyświetla obraz przeciągania w pozycji określonej przez point.

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

Parametry

pWndLock
Wskaźnik do okna będącego właścicielem obrazu przeciągania.

point
Położenie, w którym ma być wyświetlany obraz przeciągania. Współrzędne są względne względem lewego górnego rogu okna (a nie obszaru klienta).

Wartość zwracana

Bezzerowe, jeśli się powiedzie; w przeciwnym razie 0.

Uwagi

Współrzędne są względne względem lewego górnego rogu okna, dlatego należy zrekompensować szerokość elementów okna, takich jak obramowanie, pasek tytułu i pasek menu, podczas określania współrzędnych.

Jeśli pWndLock jest NULLto , ta funkcja rysuje obraz w kontekście wyświetlania skojarzonym z oknem pulpitu, a współrzędne są względem lewego górnego rogu ekranu.

Ta funkcja blokuje wszystkie inne aktualizacje danego okna podczas operacji przeciągania. Jeśli podczas operacji przeciągania musisz wykonać dowolny rysunek, taki jak wyróżnianie celu operacji przeciągania i upuszczania, możesz tymczasowo ukryć przeciągnięty obraz za pomocą CImageList::DragLeave funkcji .

Przykład

Zobacz przykład dla elementu CImageList::BeginDrag.

CImageList::DragLeave

Odblokowuje okno określone przez pWndLock program i ukrywa obraz przeciągania, co umożliwia zaktualizowanie okna.

static BOOL PASCAL DragLeave(CWnd* pWndLock);

Parametry

pWndLock
Wskaźnik do okna będącego właścicielem obrazu przeciągania.

Wartość zwracana

Bezzerowe, jeśli się powiedzie; w przeciwnym razie 0.

Przykład

Zobacz przykład dla elementu CImageList::EndDrag.

CImageList::DragMove

Wywołaj tę funkcję, aby przenieść obraz przeciągnięty podczas operacji przeciągania i upuszczania.

static BOOL PASCAL DragMove(CPoint pt);

Parametry

pt
Nowa pozycja przeciągania.

Wartość zwracana

Bezzerowe, jeśli się powiedzie; w przeciwnym razie 0.

Uwagi

Ta funkcja jest zwykle wywoływana w odpowiedzi na WM_MOUSEMOVE komunikat. Aby rozpocząć operację przeciągania, użyj funkcji składowej BeginDrag .

Przykład

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

   CDialog::OnMouseMove(nFlags, point);
}

CImageList::DragShowNolock

Pokazuje lub ukrywa obraz przeciągania podczas operacji przeciągania bez blokowania okna.

static BOOL PASCAL DragShowNolock(BOOL bShow);

Parametry

bShow
Określa, czy obraz przeciągania ma być wyświetlany.

Wartość zwracana

Bezzerowe, jeśli się powiedzie; w przeciwnym razie 0.

Uwagi

Funkcja CImageList::DragEnter blokuje wszystkie aktualizacje okna podczas operacji przeciągania. Ta funkcja nie blokuje jednak okna.

CImageList::Draw

Wywołaj tę funkcję, aby narysować obraz przeciągany podczas operacji przeciągania i upuszczania.

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

Parametry

pDC
Wskaźnik do kontekstu urządzenia docelowego.

nImage
Indeks na podstawie zera obrazu do narysowania.

pt
Lokalizacja, w której ma być rysowanie w określonym kontekście urządzenia.

nStyle
Flaga określająca styl rysunku. Może to być jedna lub więcej z następujących wartości:

Wartość Znaczenie
ILD_BLEND25, ILD_FOCUS Rysuje obraz, łącząc 25 procent z kolorem wyróżnienia systemu. Ta wartość nie ma wpływu, jeśli lista obrazów nie zawiera maski.
ILD_BLEND50, , ILD_SELECTEDILD_BLEND Rysuje obraz, łącząc 50 procent z kolorem wyróżnienia systemu. Ta wartość nie ma wpływu, jeśli lista obrazów nie zawiera maski.
ILD_MASK Rysuje maskę.
ILD_NORMAL Rysuje obraz przy użyciu koloru tła dla listy obrazów. Jeśli kolor tła jest wartością CLR_NONE , obraz jest rysowany przezroczystie przy użyciu maski.
ILD_TRANSPARENT Rysuje obraz w sposób przezroczysty przy użyciu maski, niezależnie od koloru tła.

Wartość zwracana

Bezzerowe, jeśli się powiedzie; w przeciwnym razie 0.

Przykład

Zobacz przykład dla elementu CImageList::SetOverlayImage.

CImageList::DrawEx

Rysuje element listy obrazów w określonym kontekście urządzenia.

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

Parametry

pDC
Wskaźnik do kontekstu urządzenia docelowego.

nImage
Indeks na podstawie zera obrazu do narysowania.

pt
Lokalizacja, w której ma być rysowanie w określonym kontekście urządzenia.

sz
Rozmiar części obrazu do rysowania względem lewego górnego rogu obrazu. Zobacz dx i dy w ImageList_DrawEx zestawie Windows SDK.

clrBk
Kolor tła obrazu. Zobacz rgbBk w ImageList_DrawEx zestawie Windows SDK.

clrFg
Kolor pierwszego planu obrazu. Zobacz rgbFg w ImageList_DrawEx zestawie Windows SDK.

nStyle
Flaga określająca styl rysunku. Zobacz fStyle w ImageList_DrawEx zestawie Windows SDK.

Wartość zwracana

Bezzerowe, jeśli się powiedzie; w przeciwnym razie 0.

Uwagi

Funkcja używa określonego stylu rysunku i łączy obraz z określonym kolorem.

Przykład

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

CImageList::DrawIndirect

Wywołaj tę funkcję składową, aby narysować obraz z listy obrazów.

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
Wskaźnik do struktury zawierającej IMAGELISTDRAWPARAMS informacje o operacji rysowania.

pDC
Wskaźnik do kontekstu urządzenia docelowego. Ten obiekt należy usunąć CDC po zakończeniu pracy z nim.

nImage
Indeks na podstawie zera obrazu, który ma zostać narysowany.

pt
Struktura POINT zawierająca współrzędne x i y, w których zostanie narysowany obraz.

sz
Struktura wskazująca SIZE rozmiar obrazu do narysowania.

ptOrigin
Struktura POINT zawierająca współrzędne x i y określające lewy górny róg operacji rysunku w odniesieniu do samego obrazu. Piksele obrazu, które znajdują się po lewej stronie współrzędnej x i powyżej współrzędnej y, nie są rysowane.

fStyle
Flaga określająca styl rysunku i opcjonalnie obraz nakładki. Aby uzyskać informacje na temat obrazu nakładki, zobacz sekcję Uwagi. Domyślna implementacja ILD_NORMALMFC , rysuje obraz przy użyciu koloru tła dla listy obrazów. Jeśli kolor tła jest wartością CLR_NONE , obraz jest rysowany w przezroczysty sposób przy użyciu maski.

Inne możliwe style są opisane w elemencie fStyle IMAGELISTDRAWPARAMS członkowskim struktury.

dwRop
Wartość określająca kod operacji rasterowej. Te kody definiują sposób łączenia danych koloru prostokąta źródłowego z danymi kolorów dla prostokąta docelowego w celu uzyskania końcowego koloru. Domyślna implementacja SRCCOPYMFC , kopiuje prostokąt źródłowy bezpośrednio do prostokąta docelowego. Ten parametr jest ignorowany, jeśli fStyle parametr nie zawiera flagi ILD_ROP .

Inne możliwe wartości są opisane w elemencie dwRop IMAGELISTDRAWPARAMS członkowskim struktury.

rgbBack
Kolor tła obrazu domyślnie CLR_DEFAULT. Ten parametr może być wartością RGB zdefiniowaną przez aplikację lub jedną z następujących wartości:

Wartość Znaczenie
CLR_DEFAULT Domyślny kolor tła. Obraz jest rysowany przy użyciu koloru tła listy obrazów.
CLR_NONE Brak koloru tła. Obraz jest rysowany przezroczystie.

rgbFore
Kolor pierwszego planu obrazu domyślnie CLR_DEFAULT. Ten parametr może być wartością RGB zdefiniowaną przez aplikację lub jedną z następujących wartości:

Wartość Znaczenie
CLR_DEFAULT Domyślny kolor pierwszego planu. Obraz jest rysowany przy użyciu koloru wyróżnienia systemu jako koloru pierwszego planu.
CLR_NONE Brak koloru mieszanki. Obraz jest mieszany z kolorem kontekstu urządzenia docelowego.

Ten parametr jest używany tylko wtedy, gdy fStyle parametr zawiera flagę ILD_BLEND25 lub ILD_BLEND50 .

fState
Flaga określająca stan rysunku. Ten element członkowski może zawierać co najmniej jedną flagę stanu listy obrazów.

Frame
Wpływa na zachowanie efektów saturacji i mieszania alfa.

W przypadku użycia z elementem ILS_SATURATEten element członkowski przechowuje wartość dodaną do każdego składnika koloru triplet RGB dla każdego piksela na ikonie.

W przypadku użycia z elementem ILS_APLHAten element członkowski przechowuje wartość kanału alfa. Ta wartość może wynosić od 0 do 255, a wartość 0 jest całkowicie przezroczysta, a 255 jest całkowicie nieprzezroczyste.

crEffect
COLORREF Wartość używana do efektów świecących i cieniowych.

Wartość zwracana

TRUE jeśli obraz został pomyślnie narysowany; w przeciwnym razie FALSE.

Uwagi

Użyj pierwszej wersji, jeśli chcesz samodzielnie wypełnić strukturę Win32. Użyj drugiej wersji, jeśli chcesz skorzystać z co najmniej jednego argumentu domyślnego MFC lub uniknąć zarządzania strukturą.

Obraz nakładki to obraz narysowany na początku obrazu podstawowego określony w tej funkcji składowej nImage przez parametr . Rysuj maskę nakładki przy użyciu Draw funkcji składowej z jednym indeksem maski nakładki określonej za pomocą makra INDEXTOOVERLAYMASK .

Przykład

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

Wywołaj tę funkcję, aby zakończyć operację przeciągania.

static void PASCAL EndDrag();

Uwagi

Aby rozpocząć operację przeciągania, użyj funkcji składowej BeginDrag .

Przykład

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

Wywołaj tę funkcję, aby utworzyć ikonę na podstawie obrazu i powiązanej maski na liście obrazów.

HICON ExtractIcon(int nImage);

Parametry

nImage
Indeks obrazu oparty na wartości zerowej.

Wartość zwracana

Obsługa ikony w przypadku powodzenia; w przeciwnym razie NULL.

Uwagi

Ta metoda opiera się na zachowaniu makra ImageList_ExtractIcon w celu utworzenia ikony. Aby uzyskać więcej informacji na temat tworzenia i czyszczenia ikon, zapoznaj się z makrem ImageList_ExtractIcon .

Przykład

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

Zwraca wskaźnik do CImageList obiektu, gdy dana dojście do listy obrazów.

static CImageList* PASCAL FromHandle(HIMAGELIST hImageList);

Parametry

hImageList
Określa listę obrazów.

Wartość zwracana

Wskaźnik do CImageList obiektu, jeśli się powiedzie; w przeciwnym razie NULL.

Uwagi

Jeśli obiekt CImageList nie jest jeszcze dołączony do uchwytu, zostanie utworzony i dołączony obiekt tymczasowy CImageList . Ten obiekt tymczasowy CImageList jest prawidłowy tylko do następnego czasu bezczynności aplikacji w pętli zdarzeń, w którym wszystkie obiekty tymczasowe są usuwane.

Przykład

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

Zwraca wskaźnik do CImageList obiektu, gdy dana dojście do listy obrazów.

static CImageList* PASCAL FromHandlePermanent(HIMAGELIST hImageList);

Parametry

hImageList
Określa listę obrazów.

Wartość zwracana

Wskaźnik do CImageList obiektu, jeśli się powiedzie; w przeciwnym razie NULL.

Uwagi

CImageList Jeśli obiekt nie jest dołączony do uchwytu, NULL zostanie zwrócony.

Przykład

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

Wywołaj tę funkcję, aby pobrać bieżący kolor tła dla listy obrazów.

COLORREF GetBkColor() const;

Wartość zwracana

Wartość CImageList koloru RGB koloru tła obiektu.

Przykład

Zobacz przykład dla elementu CImageList::SetBkColor.

CImageList::GetDragImage

Pobiera tymczasową listę obrazów używaną do przeciągania.

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

Parametry

lpPoint
Adres struktury, która odbiera bieżącą POINT pozycję przeciągania.

lpPointHotSpot
POINT Adres struktury, która odbiera przesunięcie obrazu przeciągania względem położenia przeciągania.

Wartość zwracana

Jeśli operacja powiedzie się, wskaźnik do tymczasowej listy obrazów używany do przeciągania; w przeciwnym razie, NULL.

CImageList::GetImageCount

Wywołaj tę funkcję, aby pobrać liczbę obrazów na liście obrazów.

int GetImageCount() const;

Wartość zwracana

Liczba obrazów.

Przykład

Zobacz przykład dla elementu CImageList::ExtractIcon.

CImageList::GetImageInfo

Wywołaj tę funkcję, aby pobrać informacje o obrazie.

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

Parametry

nImage
Indeks obrazu oparty na wartości zerowej.

pImageInfo
Wskaźnik do IMAGEINFO struktury, która odbiera informacje o obrazie. Informacje w tej strukturze mogą służyć do bezpośredniego manipulowania mapami bitowymi obrazu.

Wartość zwracana

Bezzerowe, jeśli się powiedzie; w przeciwnym razie 0.

Uwagi

Struktura IMAGEINFO zawiera informacje o obrazie na liście obrazów.

CImageList::GetSafeHandle

Wywołaj tę funkcję, aby pobrać element członkowski m_hImageList danych.

HIMAGELIST GetSafeHandle() const;

Wartość zwracana

Uchwyt do dołączonej listy obrazów; w przeciwnym razie NULL , jeśli żaden obiekt nie jest dołączony.

Przykład

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

CImageList::m_hImageList

Uchwyt listy obrazów dołączony do tego obiektu.

HIMAGELIST m_hImageList;

Uwagi

Element m_hImageList członkowski danych jest publiczną zmienną typu HIMAGELIST.

Przykład

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

CImageList::operator HIMAGELIST

Użyj tego operatora, aby uzyskać dołączony uchwyt CImageList obiektu.

operator HIMAGELIST() const;

Wartość zwracana

Jeśli operacja powiedzie się, dojście do listy obrazów reprezentowane przez CImageList obiekt; w przeciwnym razie NULL.

Uwagi

Ten operator jest operatorem rzutowania, który obsługuje bezpośrednie użycie HIMAGELIST obiektu.

Przykład

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

CImageList::Read

Wywołaj tę funkcję, aby odczytać listę obrazów z archiwum.

BOOL Read(CArchive* pArchive);

Parametry

pArchive
Wskaźnik do CArchive obiektu, z którego ma być odczytywana lista obrazów.

Wartość zwracana

Bezzerowe, jeśli się powiedzie; w przeciwnym razie 0.

Przykład

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

Wywołaj tę funkcję, aby usunąć obraz z obiektu listy obrazów.

BOOL Remove(int nImage);

Parametry

nImage
Indeks obrazu oparty na wartości zerowej do usunięcia.

Wartość zwracana

Bezzerowe, jeśli się powiedzie; w przeciwnym razie 0.

Uwagi

Wszystkie poniższe nImage elementy przenoszą się teraz w dół o jedną pozycję. Jeśli na przykład lista obrazów zawiera dwa elementy, usunięcie pierwszego elementu spowoduje, że pozostały element będzie teraz w pierwszej pozycji. nImage=0 dla elementu w pierwszej pozycji.

Przykład

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

CImageList::Replace

Wywołaj tę funkcję, aby zastąpić obraz na liście obrazów nowym obrazem.

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

int Replace(
    int nImage,
    HICON hIcon);

Parametry

nImage
Indeks na podstawie zera obrazu do zastąpienia.

pbmImage
Wskaźnik do mapy bitowej zawierającej obraz.

pbmMask
Wskaźnik do mapy bitowej zawierającej maskę. Jeśli z listą obrazów nie jest używana żadna maska, ten parametr jest ignorowany.

hIcon
Uchwyt do ikony zawierającej mapę bitową i maskę dla nowego obrazu.

Wartość zwracana

Zwracana BOOL wersja zwraca wartość niezerowa, jeśli się powiedzie; w przeciwnym razie wartość 0.

Zwracana int wersja zwraca indeks oparty na zerze obrazu, jeśli się powiedzie; w przeciwnym razie — 1.

Uwagi

Wywołaj tę funkcję składową po wywołaniu metody SetImageCount , aby przypisać nowe, prawidłowe obrazy do numerów indeksów obrazów zastępczych.

Przykład

Zobacz przykład dla elementu CImageList::SetImageCount.

CImageList::SetBkColor

Wywołaj tę funkcję, aby ustawić kolor tła listy obrazów.

COLORREF SetBkColor(COLORREF cr);

Parametry

cr
Kolor tła do ustawienia. Może to być CLR_NONE. W takim przypadku obrazy są rysowane przezroczystie przy użyciu maski.

Wartość zwracana

Poprzedni kolor tła, jeśli przebiegnie pomyślnie; w przeciwnym razie CLR_NONE.

Przykład

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

CImageList::SetDragCursorImage

Tworzy nowy obraz przeciągania, łącząc dany obraz (zazwyczaj obraz kursora myszy) z bieżącym obrazem przeciągania.

BOOL SetDragCursorImage(
    int nDrag,
    CPoint ptHotSpot);

Parametry

nDrag
Indeks nowego obrazu do połączenia z obrazem przeciągania.

ptHotSpot
Położenie punktu gorącego na nowym obrazie.

Wartość zwracana

Bezzerowe, jeśli się powiedzie; w przeciwnym razie 0.

Uwagi

Ponieważ funkcje przeciągania używają nowego obrazu podczas operacji przeciągania, należy użyć funkcji systemu Windows ShowCursor , aby ukryć rzeczywisty kursor myszy po wywołaniu metody CImageList::SetDragCursorImage. W przeciwnym razie system może wydawać się mieć dwa kursory myszy na czas trwania operacji przeciągania.

CImageList::SetImageCount

Wywołaj tę funkcję składową, aby zresetować liczbę obrazów w CImageList obiekcie.

BOOL SetImageCount(UINT uNewCount);

Parametry

uNewCount
Wartość określająca nową całkowitą liczbę obrazów na liście obrazów.

Wartość zwracana

Bezzerowe, jeśli się powiedzie; w przeciwnym razie zero.

Uwagi

Jeśli wywołasz tę funkcję składową, aby zwiększyć liczbę obrazów na liście obrazów, wywołaj Replace wywołanie każdego dodatkowego obrazu w celu przypisania nowych indeksów do prawidłowych obrazów. Jeśli nie można przypisać indeksów do prawidłowych obrazów, operacje rysowania tworzące nowe obrazy będą nieprzewidywalne.

Jeśli zmniejszysz rozmiar listy obrazów przy użyciu tej funkcji, obcinane obrazy zostaną zwolnione.

Przykład

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

Wywołaj tę funkcję, aby dodać indeks obrazu oparty na zerze do listy obrazów, które mają być używane jako maski nakładki.

BOOL SetOverlayImage(
    int nImage,
    int nOverlay);

Parametry

nImage
Zerowy indeks obrazu do użycia jako maska nakładki.

nOverlay
Jeden indeks maski nakładki.

Wartość zwracana

Bezzerowe, jeśli się powiedzie; w przeciwnym razie 0.

Uwagi

Do listy można dodać maksymalnie cztery indeksy.

Maska nakładki to obraz narysowany przezroczystie na innym obrazie. Rysuj maskę nakładki na obraz przy użyciu CImageList::Draw funkcji składowej z jednokierunkowym indeksem maski nakładki określonej za pomocą makra INDEXTOOVERLAYMASK .

Przykład

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

Wywołaj tę funkcję, aby napisać obiekt listy obrazów do archiwum.

BOOL Write(CArchive* pArchive);

Parametry

pArchive
Wskaźnik do CArchive obiektu, w którym ma być przechowywana lista obrazów.

Wartość zwracana

Bezzerowe, jeśli się powiedzie; w przeciwnym razie 0.

Przykład

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

Zobacz też

CObject Klasa
Wykres hierarchii
CListCtrl Klasa
CTabCtrl Klasa