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 FromHandle program . |
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
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_Copy
Win32 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 Create
metodę , 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 NULL
to , 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_SELECTED ILD_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_NORMAL
MFC , 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 SRCCOPY
MFC , 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_SATURATE
ten 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_APLHA
ten 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