CImageList
Sınıf
Windows ortak görüntü listesi denetiminin işlevselliğini sağlar.
Sözdizimi
class CImageList : public CObject
Üyeler
Ortak Oluşturucular
Veri Akışı Adı | Açıklama |
---|---|
CImageList::CImageList |
Bir CImageList nesne oluşturur. |
Genel Yöntemler
Veri Akışı Adı | Açıklama |
---|---|
CImageList::Add |
Resim listesine resim veya resim ekler. |
CImageList::Attach |
Nesneye CImageList resim listesi ekler. |
CImageList::BeginDrag |
Bir görüntüyü sürüklemeye başlar. |
CImageList::Copy |
Nesne içindeki bir CImageList görüntüyü kopyalar. |
CImageList::Create |
Görüntü listesini başlatır ve bir CImageList nesneye ekler. |
CImageList::DeleteImageList |
Resim listesini siler. |
CImageList::DeleteTempMap |
tarafından oluşturulan geçici CImageList nesneleri silmek için boşta kalma süresi işleyicisi tarafından CWinApp FromHandle çağrılır. |
CImageList::Detach |
Bir resim listesi nesnesini nesneden CImageList ayırır ve bir tutamacı görüntü listesine döndürür. |
CImageList::DragEnter |
Bir sürükleme işlemi sırasında güncelleştirmeleri kilitler ve sürükleme görüntüsünü belirtilen bir konumda görüntüler. |
CImageList::DragLeave |
Pencerenin kilidini açar ve sürükleme görüntüsünü gizleyerek pencerenin güncelleştirilebilmesini sağlar. |
CImageList::DragMove |
Sürükle ve bırak işlemi sırasında sürüklenen görüntüyü taşır. |
CImageList::DragShowNolock |
Sürükleme işlemi sırasında, pencereyi kilitlemeden sürükleme görüntüsünü gösterir veya gizler. |
CImageList::Draw |
Sürükle ve bırak işlemi sırasında sürüklenen görüntüyü çizer. |
CImageList::DrawEx |
Belirtilen cihaz bağlamında bir resim listesi öğesi çizer. İşlev, belirtilen çizim stilini kullanır ve görüntüyü belirtilen renkle harmanlar. |
CImageList::DrawIndirect |
Resim listesinden resim çizer. |
CImageList::EndDrag |
Sürükleme işlemini sonlandırır. |
CImageList::ExtractIcon |
Resim listesindeki bir görüntüyü ve maskeyi temel alan bir simge oluşturur. |
CImageList::FromHandle |
Görüntü listesine tanıtıcı CImageList verildiğinde nesneye yönelik bir işaretçi döndürür. Bir CImageList nesne tanıtıcıya bağlı değilse, geçici CImageList bir nesne oluşturulur ve eklenir. |
CImageList::FromHandlePermanent |
Görüntü listesine tanıtıcı CImageList verildiğinde nesneye yönelik bir işaretçi döndürür. Bir CImageList nesne tanıtıcıya bağlı değilse NULL döndürülür. |
CImageList::GetBkColor |
Resim listesi için geçerli arka plan rengini alır. |
CImageList::GetDragImage |
Sürüklemek için kullanılan geçici görüntü listesini alır. |
CImageList::GetImageCount |
Resim listesindeki görüntü sayısını alır. |
CImageList::GetImageInfo |
Bir görüntü hakkındaki bilgileri alır. |
CImageList::GetSafeHandle |
alır m_hImageList . |
CImageList::Read |
Arşivden bir resim listesi okur. |
CImageList::Remove |
Resim listesinden bir görüntüyü kaldırır. |
CImageList::Replace |
Resim listesindeki bir görüntüyü yeni bir resimle değiştirir. |
CImageList::SetBkColor |
Resim listesi için arka plan rengini ayarlar. |
CImageList::SetDragCursorImage |
Yeni bir sürükleme görüntüsü oluşturur. |
CImageList::SetImageCount |
Resim listesindeki görüntü sayısını sıfırlar. |
CImageList::SetOverlayImage |
Bir görüntünün sıfır tabanlı dizinini katman maskeleri olarak kullanılacak görüntüler listesine ekler. |
CImageList::Write |
Bir görüntü listesini arşive yazar. |
Ortak İşleçler
Veri Akışı Adı | Açıklama |
---|---|
CImageList::operator HIMAGELIST |
HIMAGELIST öğesine eklenmiş olan öğesini CImageList döndürür. |
Ortak Veri Üyeleri
Veri Akışı Adı | Açıklama |
---|---|
CImageList::m_hImageList |
Bu nesneye eklenmiş görüntü listesini içeren tanıtıcı. |
Açıklamalar
"Görüntü listesi", her biri sıfır tabanlı dizini tarafından başvurulabilen aynı boyutlu görüntülerden oluşan bir koleksiyondur. Görüntü listeleri, büyük simge veya bit eşlem kümelerini verimli bir şekilde yönetmek için kullanılır. Bir resim listesindeki tüm görüntüler, ekran cihazı biçiminde tek, geniş bir bit eşlem içinde yer alır. Resim listesi, resimleri saydam olarak çizmek için kullanılan maskeleri (simge stili) içeren tek renkli bir bit eşlem de içerebilir. Microsoft Win32 uygulama programlama arabirimi (API), resim çizmenizi, görüntü listeleri oluşturup yok etmenizi, görüntü ekleyip kaldırmanızı, görüntüleri değiştirmenizi, resimleri birleştirmenizi ve sürüklemenizi sağlayan görüntü listesi işlevleri sağlar.
Bu denetim (ve dolayısıyla CImageList
sınıfı) yalnızca Windows 95/98 ve Windows NT sürüm 3.51 ve üzeri altında çalışan programlarda kullanılabilir.
kullanma CImageList
hakkında daha fazla bilgi için bkz. Denetimler ve Kullanma CImageList
.
Devralma Hiyerarşisi
CImageList
Gereksinimler
Üstbilgi: afxcmn.h
CImageList::Add
Resim listesine bir veya daha fazla resim veya simge eklemek için bu işlevi çağırın.
int Add(
CBitmap* pbmImage,
CBitmap* pbmMask);
int Add(
CBitmap* pbmImage,
COLORREF crMask);
int Add(HICON hIcon);
Parametreler
pbmImage
Görüntüyü veya resimleri içeren bit eşlem işaretçisi. Görüntü sayısı bit eşlem genişliğine göre çıkarılır.
pbmMask
Maskeyi içeren bit eşlem işaretçisi. Görüntü listesiyle maske kullanılmazsa, bu parametre yoksayılır.
crMask
Maskeyi oluşturmak için kullanılan renk. Verilen bit eşlemdeki bu rengin her pikseli siyah olarak değiştirilir ve maskedeki ilgili bit bir olarak ayarlanır.
hIcon
Yeni görüntü için bit eşlem ve maske içeren simgenin tutamacı.
Dönüş Değeri
Başarılı olursa ilk yeni görüntünün sıfır tabanlı dizini; aksi takdirde - 1.
Açıklamalar
İşiniz bittiğinde simge tutamacını serbest bırakmak sizin sorumluluğunuzdadır.
Örnek
// 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
Nesneye resim listesi eklemek için CImageList
bu işlevi çağır.
BOOL Attach(HIMAGELIST hImageList);
Parametreler
hImageList
Resim listesi nesnesinin tanıtıcısı.
Dönüş Değeri
Ek başarılı olursa sıfır olmayan; aksi takdirde 0.
Örnek
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
Görüntüyü sürüklemeye başlamak için bu işlevi çağır.
BOOL BeginDrag(
int nImage,
CPoint ptHotSpot);
Parametreler
nImage
Sürüklenecek görüntünün sıfır tabanlı dizini.
ptHotSpot
Başlangıç sürükleme konumunun koordinatları (genellikle imleç konumu). Koordinatlar görüntünün sol üst köşesine göredir.
Dönüş Değeri
Başarılı olursa sıfır olmayan; aksi takdirde 0.
Açıklamalar
Bu işlev, sürüklemek için kullanılan geçici bir görüntü listesi oluşturur. Görüntü, belirtilen görüntüyü ve maskesini geçerli imleçle birleştirir. Sonraki WM_MOUSEMOVE
iletilere yanıt olarak, üye işlevini kullanarak DragMove
sürükleme görüntüsünü taşıyabilirsiniz. Sürükleme işlemini sonlandırmak için üye işlevini kullanabilirsiniz EndDrag
.
Örnek
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
Bir CImageList
nesne oluşturur.
CImageList();
CImageList::Copy
Bu üye işlevi, Windows SDK'da açıklandığı gibi Win32 işlevinin ImageList_Copy
davranışını uygular.
BOOL Copy(
int iDst,
int iSrc,
UINT uFlags = ILCF_MOVE);
BOOL Copy(
int iDst,
CImageList* pSrc,
int iSrc,
UINT uFlags = ILCF_MOVE);
Parametreler
iDst
Kopyalama işleminin hedefi olarak kullanılacak görüntünün sıfır tabanlı dizini.
iSrc
Kopyalama işleminin kaynağı olarak kullanılacak görüntünün sıfır tabanlı dizini.
uFlags
Yapılacak kopyalama işleminin türünü belirten bit bayrağı değeri. Bu parametre aşağıdaki değerlerden biri olabilir:
Değer | Anlamı |
---|---|
ILCF_MOVE |
Kaynak görüntü hedef görüntünün dizinine kopyalanır. Bu işlem belirli bir görüntünün birden çok örneğine neden olur. ILCF_MOVE varsayılan değerdir. |
ILCF_SWAP |
Kaynak ve hedef görüntüler, görüntü listesindeki konumları değiştirir. |
pSrc
Kopyalama işleminin hedefi olan bir CImageList
nesnenin işaretçisi.
Dönüş Değeri
Başarılı olursa sıfır olmayan; aksi takdirde sıfır.
Örnek
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
Görüntü listesini başlatır ve bir CImageList
nesneye ekler.
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);
Parametreler
cx
Her görüntünün piksel cinsinden boyutları.
cy
Her görüntünün piksel cinsinden boyutları.
nFlags
Oluşturulacak görüntü listesinin türünü belirtir. Bu parametre aşağıdaki değerlerin bir bileşimi olabilir, ancak değerlerden yalnızca birini ILC_COLOR
içerebilir.
Değer | Anlamı |
---|---|
ILC_COLOR |
Diğer ILC_COLOR* bayraklardan hiçbiri belirtilmezse varsayılan davranışı kullanın. Genellikle varsayılan olarak ILC_COLOR4 ; ancak eski görüntü sürücüleri için varsayılan değer olur ILC_COLORDDB . |
ILC_COLOR4 |
Görüntü listesi için bit eşlem olarak 4 bit (16 renkli) cihazdan bağımsız bit eşlem (DIB) bölümü kullanın. |
ILC_COLOR8 |
8 bit DIB bölümü kullanın. Renk tablosu için kullanılan renkler, yarım ton paleti ile aynı renklerdir. |
ILC_COLOR16 |
16 bit (32/64k renk) DIB bölümü kullanın. |
ILC_COLOR24 |
24 bit DIB bölümü kullanın. |
ILC_COLOR32 |
32 bit DIB bölümü kullanın. |
ILC_COLORDDB |
Cihaza bağımlı bit eşlem kullanın. |
ILC_MASK |
Maske kullanır. Görüntü listesinde biri maske olarak kullanılan tek renkli bit eşlem olan iki bit eşlem bulunur. Bu değer dahil değilse, görüntü listesinde yalnızca bir bit eşlem bulunur. Maskelenmiş görüntüler hakkında ek bilgi için bkz . Resim Listesinden Resim Çizme. |
nInitial
Görüntü listesinin başlangıçta içerdiği görüntü sayısı.
nGrow
Sistemin yeni görüntülere yer açmak için listeyi yeniden boyutlandırması gerektiğinde görüntü listesinin büyüyebileceği görüntü sayısı. Bu parametre, yeniden boyutlandırılan görüntü listesinin içerebileceği yeni görüntü sayısını temsil eder.
nBitmapID
Görüntü listesiyle ilişkilendirilecek bit eşlem kaynak kimlikleri.
crMask
Maske oluşturmak için kullanılan renk. Belirtilen bit eşlem içindeki bu rengin her pikseli siyah olarak değiştirilir ve maskedeki ilgili bit bir olarak ayarlanır.
lpszBitmapID
Görüntülerin kaynak kimliklerini içeren bir dize.
imagelist1
Bir nesneye CImageList
başvuru.
nImage1
Mevcut ilk görüntünün dizini.
imagelist2
Bir nesneye CImageList
başvuru.
nImage2
Mevcut ikinci görüntünün dizini.
dx
İkinci görüntünün x ekseninin ilk görüntüyle ilişkisi piksel cinsinden uzaklığı.
dy
İkinci görüntünün y ekseninin ilk görüntüyle ilişkisi piksel cinsinden uzaklığı.
pImageList
Nesne işaretçisi CImageList
.
Dönüş Değeri
Başarılı olursa sıfır olmayan; aksi takdirde 0.
Açıklamalar
İki adımda bir CImageList
oluşturursunuz. İlk olarak oluşturucuyu çağırın ve ardından öğesini çağırarak Create
görüntü listesini oluşturur ve nesnesine CImageList
ekler.
Örnek
m_myImageList.Create(32, 32, ILC_COLOR8, 0, 4);
CImageList::DeleteImageList
Resim listesini silmek için bu işlevi çağır.
BOOL DeleteImageList();
Dönüş Değeri
Başarılı olursa sıfır olmayan; aksi takdirde 0.
Örnek
// Delete the image list and verify.
myImageList2.DeleteImageList();
ASSERT(myImageList2.GetSafeHandle() == NULL);
CImageList::DeleteTempMap
Boşta kalma zamanı işleyicisi tarafından CWinApp
otomatik olarak çağrılır, DeleteTempMap
FromHandle tarafından oluşturulan geçici CImageList
nesneleri siler, ancak nesnelerle ImageList
geçici olarak ilişkili tanıtıcıları ( hImageList
) yok etmez.
static void PASCAL DeleteTempMap();
Örnek
// Note that this is a static member so an instantiated CImageList
// object is unnecessary.
CImageList::DeleteTempMap();
CImageList::Detach
Resim listesi nesnesini bir nesneden CImageList
ayırmak için bu işlevi çağır.
HIMAGELIST Detach();
Dönüş Değeri
Resim listesi nesnesinin tanıtıcısı.
Açıklamalar
Bu işlev, görüntü listesi nesnesine bir tanıtıcı döndürür.
Örnek
örneğine CImageList::Attach
bakın.
CImageList::DragEnter
Sürükleme işlemi sırasında, tarafından pWndLock
belirtilen pencereye yapılan güncelleştirmeleri kilitler ve sürükle görüntüsünü tarafından point
belirtilen konumda görüntüler.
static BOOL PASCAL DragEnter(
CWnd* pWndLock,
CPoint point);
Parametreler
pWndLock
Sürükleme resminin sahibi olan pencerenin işaretçisi.
point
Sürükleme görüntüsünün görüntüleneceği konum. Koordinatlar pencerenin sol üst köşesine göredir (istemci alanına göre değildir).
Dönüş Değeri
Başarılı olursa sıfır olmayan; aksi takdirde 0.
Açıklamalar
Koordinatlar pencerenin sol üst köşesine göredir, bu nedenle koordinatları belirtirken kenarlık, başlık çubuğu ve menü çubuğu gibi pencere öğelerinin genişliklerini dengelemeniz gerekir.
ise pWndLock
NULL
, bu işlev görüntüyü masaüstü penceresiyle ilişkilendirilmiş görüntü bağlamında çizer ve koordinatlar ekranın sol üst köşesine göredir.
Bu işlev, sürükleme işlemi sırasında verilen pencerede yapılan diğer tüm güncelleştirmeleri kilitler. Sürükle ve bırak işleminin hedefini vurgulama gibi bir sürükleme işlemi sırasında herhangi bir çizim yapmanız gerekiyorsa, işlevi kullanarak CImageList::DragLeave
sürüklenen görüntüyü geçici olarak gizleyebilirsiniz.
Örnek
örneğine CImageList::BeginDrag
bakın.
CImageList::DragLeave
tarafından pWndLock
belirtilen pencerenin kilidini açar ve sürükleme görüntüsünü gizleyerek pencerenin güncelleştirilebilmesini sağlar.
static BOOL PASCAL DragLeave(CWnd* pWndLock);
Parametreler
pWndLock
Sürükleme resminin sahibi olan pencerenin işaretçisi.
Dönüş Değeri
Başarılı olursa sıfır olmayan; aksi takdirde 0.
Örnek
örneğine CImageList::EndDrag
bakın.
CImageList::DragMove
Sürükle ve bırak işlemi sırasında sürüklenen görüntüyü taşımak için bu işlevi çağırın.
static BOOL PASCAL DragMove(CPoint pt);
Parametreler
pt
Yeni sürükleme konumu.
Dönüş Değeri
Başarılı olursa sıfır olmayan; aksi takdirde 0.
Açıklamalar
Bu işlev genellikle bir WM_MOUSEMOVE
iletiye yanıt olarak çağrılır. Sürükleme işlemine başlamak için üye işlevini kullanın BeginDrag
.
Örnek
void CImageListDlg::OnMouseMove(UINT nFlags, CPoint point)
{
m_myImageList.DragMove(point);
CDialog::OnMouseMove(nFlags, point);
}
CImageList::DragShowNolock
Sürükleme işlemi sırasında, pencereyi kilitlemeden sürükleme görüntüsünü gösterir veya gizler.
static BOOL PASCAL DragShowNolock(BOOL bShow);
Parametreler
bShow
Sürükleme görüntüsünün gösterilip gösterilmeymeyeceğini belirtir.
Dönüş Değeri
Başarılı olursa sıfır olmayan; aksi takdirde 0.
Açıklamalar
işlevi, CImageList::DragEnter
bir sürükleme işlemi sırasında penceredeki tüm güncelleştirmeleri kilitler. Ancak bu işlev pencereyi kilitlemez.
CImageList::Draw
Sürükle ve bırak işlemi sırasında sürüklenen görüntüyü çizmek için bu işlevi çağırın.
BOOL Draw(
CDC* pDC,
int nImage,
POINT pt,
UINT nStyle);
Parametreler
pDC
Hedef cihaz bağlamı işaretçisi.
nImage
Çizecek görüntünün sıfır tabanlı dizini.
pt
Belirtilen cihaz bağlamı içinde çizilen konum.
nStyle
Çizim stilini belirten bayrak. Bu değerlerden biri veya daha fazlası olabilir:
Değer | Anlamı |
---|---|
ILD_BLEND25 , ILD_FOCUS |
%25'i sistem vurgu rengiyle karıştırarak görüntüyü çizer. Görüntü listesinde maske yoksa bu değerin hiçbir etkisi olmaz. |
ILD_BLEND50 , ILD_SELECTED , ILD_BLEND |
%50'sini sistem vurgu rengiyle karıştırarak görüntüyü çizer. Görüntü listesinde maske yoksa bu değerin hiçbir etkisi olmaz. |
ILD_MASK |
Maskeyi çizer. |
ILD_NORMAL |
Resim listesinin arka plan rengini kullanarak resmi çizer. Arka plan rengi değerse CLR_NONE , resim maske kullanılarak saydam olarak çizilir. |
ILD_TRANSPARENT |
Arka plan renginden bağımsız olarak maskeyi kullanarak resmi saydam bir şekilde çizer. |
Dönüş Değeri
Başarılı olursa sıfır olmayan; aksi takdirde 0.
Örnek
örneğine CImageList::SetOverlayImage
bakın.
CImageList::DrawEx
Belirtilen cihaz bağlamında bir resim listesi öğesi çizer.
BOOL DrawEx(
CDC* pDC,
int nImage,
POINT pt,
SIZE sz,
COLORREF clrBk,
COLORREF clrFg,
UINT nStyle);
Parametreler
pDC
Hedef cihaz bağlamı işaretçisi.
nImage
Çizecek görüntünün sıfır tabanlı dizini.
pt
Belirtilen cihaz bağlamı içinde çizilen konum.
sz
Resmin sol üst köşesine göre çizecek olan bölümünün boyutu. Windows SDK'sında ve dy
içinde ImageList_DrawEx
bölümüne bakındx
.
clrBk
Resmin arka plan rengi. Windows SDK'sında ImageList_DrawEx
bölümüne bakınrgbBk
.
clrFg
Resmin ön plan rengi. Windows SDK'sında ImageList_DrawEx
bölümüne bakınrgbFg
.
nStyle
Çizim stilini belirten bayrak. Windows SDK'sında ImageList_DrawEx
bölümüne bakınfStyle
.
Dönüş Değeri
Başarılı olursa sıfır olmayan; aksi takdirde 0.
Açıklamalar
İşlev, belirtilen çizim stilini kullanır ve görüntüyü belirtilen renkle harmanlar.
Örnek
m_myImageList.DrawEx(&dc, 0, CPoint(0, 0), CSize(16, 16), CLR_DEFAULT,
CLR_DEFAULT, ILD_IMAGE);
CImageList::DrawIndirect
Bir görüntü listesinden görüntü çizmek için bu üye işlevini çağır.
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);
Parametreler
pimldp
Çizim işlemi hakkında bilgi içeren bir yapıya yönelik işaretçi IMAGELISTDRAWPARAMS
.
pDC
Hedef cihaz bağlamı için bir işaretçi. İşiniz bittiğinde bu CDC
nesneyi silmeniz gerekir.
nImage
Çizilecek görüntünün sıfır tabanlı dizini.
pt
Resmin POINT
çizileceği x ve y koordinatlarını içeren bir yapı.
sz
SIZE
Çizilecek görüntünün boyutunu gösteren bir yapı.
ptOrigin
POINT
Resmin kendisine göre çizim işleminin sol üst köşesini belirten x ve y koordinatlarını içeren bir yapı. X koordinatının solunda ve y koordinatının üzerinde olan görüntünün pikselleri çizilmemiş.
fStyle
Çizim stilini ve isteğe bağlı olarak katman görüntüsünü belirten bayrak. Katman görüntüsü hakkında bilgi için Açıklamalar bölümüne bakın. MFC varsayılan uygulaması, ILD_NORMAL
görüntü listesinin arka plan rengini kullanarak görüntüyü çizer. Arka plan rengi değerse CLR_NONE
, resim bir maske kullanılarak saydam olarak çizilir.
Diğer olası stiller, yapının üyesi IMAGELISTDRAWPARAMS
altında fStyle
açıklanmıştır.
dwRop
Raster işlem kodunu belirten değer. Bu kodlar, son rengi elde etmek için kaynak dikdörtgenin renk verilerinin hedef dikdörtgenin renk verileriyle nasıl birleştirileceğini tanımlar. MFC'nin varsayılan uygulaması olan , SRCCOPY
kaynak dikdörtgeni doğrudan hedef dikdörtgene kopyalar. Parametre bayrağını içermiyorsa fStyle
bu parametre yoksayılır ILD_ROP
.
Diğer olası değerler, yapının üyesi IMAGELISTDRAWPARAMS
altında dwRop
açıklanmıştır.
rgbBack
Varsayılan olarak CLR_DEFAULT
, resim arka plan rengi. Bu parametre, uygulama tanımlı bir RGB değeri veya aşağıdaki değerlerden biri olabilir:
Değer | Anlamı |
---|---|
CLR_DEFAULT |
Varsayılan arka plan rengi. Resim, resim listesi arka plan rengi kullanılarak çizilir. |
CLR_NONE |
Arka plan rengi yok. Resim saydam olarak çizilir. |
rgbFore
Görüntü ön plan rengi, varsayılan olarak CLR_DEFAULT
. Bu parametre, uygulama tanımlı bir RGB değeri veya aşağıdaki değerlerden biri olabilir:
Değer | Anlamı |
---|---|
CLR_DEFAULT |
Varsayılan ön plan rengi. Görüntü, ön plan rengi olarak sistem vurgu rengi kullanılarak çizilir. |
CLR_NONE |
Karışım rengi yok. Görüntü, hedef cihaz bağlamının rengiyle karıştırılır. |
Bu parametre yalnızca veya ILD_BLEND50
bayrağını fStyle
ILD_BLEND25
içeriyorsa kullanılır.
fState
Çizim durumunu belirten bayrak. Bu üye bir veya daha fazla görüntü listesi durum bayrağı içerebilir.
Frame
Doygunluk ve alfa karıştırma etkilerinin davranışını etkiler.
ile ILS_SATURATE
kullanıldığında, bu üye simgedeki her piksel için RGB üçlüsünün her renk bileşenine eklenen değeri tutar.
ile ILS_APLHA
kullanıldığında, bu üye alfa kanalının değerini tutar. Bu değer 0 ile 255 arasında olabilir ve 0 tamamen saydam ve 255 tamamen opak olabilir.
crEffect
COLORREF
Parlama ve gölge efektleri için kullanılan değer.
Dönüş Değeri
TRUE
resim başarıyla çizilirse; aksi takdirde FALSE
.
Açıklamalar
Win32 yapısını kendiniz doldurmak istiyorsanız ilk sürümü kullanın. MFC'nin varsayılan bağımsız değişkenlerinden bir veya daha fazlasından yararlanmak veya yapıyı yönetmekten kaçınmak istiyorsanız ikinci sürümü kullanın.
Katman görüntüsü, bu üye işlevinde parametresi tarafından nImage
belirtilen birincil görüntünün üzerine çizilmiş bir görüntüdür. Makro kullanılarak belirtilen katman maskesinin Draw
tek tabanlı diziniyle üye işlevini kullanarak katman maskesi çizin INDEXTOOVERLAYMASK
.
Örnek
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
Sürükleme işlemini sonlandırmak için bu işlevi çağır.
static void PASCAL EndDrag();
Açıklamalar
Sürükleme işlemine başlamak için üye işlevini kullanın BeginDrag
.
Örnek
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
Görüntü listesinde bir görüntüyü ve ilgili maskesini temel alan bir simge oluşturmak için bu işlevi çağırın.
HICON ExtractIcon(int nImage);
Parametreler
nImage
Görüntünün sıfır tabanlı dizini.
Dönüş Değeri
Başarılı olursa simgenin tutamacı; aksi takdirde NULL
.
Açıklamalar
Bu yöntem, simgeyi oluşturmak için makronun ImageList_ExtractIcon
davranışına dayanır. ImageList_ExtractIcon
Simge oluşturma ve temizleme hakkında daha fazla bilgi için makroya bakın.
Örnek
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
Görüntü listesine tanıtıcı CImageList
verildiğinde nesneye yönelik bir işaretçi döndürür.
static CImageList* PASCAL FromHandle(HIMAGELIST hImageList);
Parametreler
hImageList
Görüntü listesini belirtir.
Dönüş Değeri
Başarılı olursa nesne CImageList
işaretçisi; aksi takdirde NULL
.
Açıklamalar
CImageList
bir zaten tanıtıcıya bağlı değilse, geçici CImageList
bir nesne oluşturulur ve eklenir. Bu geçici CImageList
nesne, yalnızca uygulamanın olay döngüsünde boşta kalma süresine sahip olduğu ve tüm geçici nesnelerin silindiği bir sonraki zamana kadar geçerlidir.
Örnek
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
Görüntü listesine tanıtıcı CImageList
verildiğinde nesneye yönelik bir işaretçi döndürür.
static CImageList* PASCAL FromHandlePermanent(HIMAGELIST hImageList);
Parametreler
hImageList
Görüntü listesini belirtir.
Dönüş Değeri
Başarılı olursa nesne CImageList
işaretçisi; aksi takdirde NULL
.
Açıklamalar
Bir CImageList
nesne tanıtıcıya bağlı değilse döndürülür NULL
.
Örnek
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
Resim listesinin geçerli arka plan rengini almak için bu işlevi çağırın.
COLORREF GetBkColor() const;
Dönüş Değeri
Nesne arka plan renginin CImageList
RGB renk değeri.
Örnek
örneğine CImageList::SetBkColor
bakın.
CImageList::GetDragImage
Sürüklemek için kullanılan geçici görüntü listesini alır.
static CImageList* PASCAL GetDragImage(
LPPOINT lpPoint,
LPPOINT lpPointHotSpot);
Parametreler
lpPoint
Geçerli sürükleme konumunu alan bir POINT
yapının adresi.
lpPointHotSpot
Sürükleme görüntüsünün sürükleme konumuna göre uzaklığını alan bir POINT
yapının adresi.
Dönüş Değeri
Başarılı olursa, sürüklemek için kullanılan geçici görüntü listesinin işaretçisi; aksi takdirde , NULL
.
CImageList::GetImageCount
Resim listesindeki görüntü sayısını almak için bu işlevi çağırın.
int GetImageCount() const;
Dönüş Değeri
Resim sayısı.
Örnek
örneğine CImageList::ExtractIcon
bakın.
CImageList::GetImageInfo
Görüntü hakkındaki bilgileri almak için bu işlevi çağır.
BOOL GetImageInfo(
int nImage,
IMAGEINFO* pImageInfo) const;
Parametreler
nImage
Görüntünün sıfır tabanlı dizini.
pImageInfo
Görüntü hakkında bilgi alan bir IMAGEINFO
yapı işaretçisi. Bu yapıdaki bilgiler, görüntünün bit eşlemlerini doğrudan işlemek için kullanılabilir.
Dönüş Değeri
Başarılı olursa sıfır olmayan; aksi takdirde 0.
Açıklamalar
Yapı, IMAGEINFO
görüntü listesindeki bir görüntü hakkında bilgi içerir.
CImageList::GetSafeHandle
Veri üyesini almak için bu işlevi çağırın m_hImageList
.
HIMAGELIST GetSafeHandle() const;
Dönüş Değeri
Ekli görüntü listesinin tutamacı; aksi takdirde NULL
hiçbir nesne eklenmemişse.
Örnek
// Get the safe handle to the image list.
HIMAGELIST hImageList = m_myImageList.GetSafeHandle();
CImageList::m_hImageList
Bu nesneye eklenmiş görüntü listesinin tutamacı.
HIMAGELIST m_hImageList;
Açıklamalar
Veri m_hImageList
üyesi türünde HIMAGELIST
bir ortak değişkendir.
Örnek
// Get the safe handle to the image list.
HIMAGELIST hImageList = m_myImageList.m_hImageList;
CImageList::operator HIMAGELIST
Nesnenin ekli tutamacını CImageList
almak için bu işleci kullanın.
operator HIMAGELIST() const;
Dönüş Değeri
Başarılı olursa, nesnesi tarafından temsil edilen görüntü listesinin tanıtıcısı CImageList
; aksi takdirde NULL
.
Açıklamalar
Bu işleç, bir nesnenin doğrudan kullanımını destekleyen bir HIMAGELIST
atama işlecidir.
Örnek
// Get the safe handle to the image list.
HIMAGELIST hImageList = m_myImageList;
CImageList::Read
Arşivden bir resim listesini okumak için bu işlevi çağır.
BOOL Read(CArchive* pArchive);
Parametreler
pArchive
Resim listesinin okunacağı nesnenin CArchive
işaretçisi.
Dönüş Değeri
Başarılı olursa sıfır olmayan; aksi takdirde 0.
Örnek
// 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
Görüntü listesi nesnesinden bir görüntüyü kaldırmak için bu işlevi çağır.
BOOL Remove(int nImage);
Parametreler
nImage
Kaldırılacak görüntünün sıfır tabanlı dizini.
Dönüş Değeri
Başarılı olursa sıfır olmayan; aksi takdirde 0.
Açıklamalar
İzleyen nImage
tüm öğeler artık bir konum aşağı doğru ilerler. Örneğin, bir görüntü listesinde iki öğe varsa, ilk öğe silindiğinde kalan öğe artık ilk konumda olur. nImage
İlk konumdaki öğe için =0.
Örnek
// Remove every other image from the image list.
for (int i = 0; i < m_myImageList.GetImageCount(); i++)
{
m_myImageList.Remove(i);
}
CImageList::Replace
Görüntü listesindeki bir görüntüyü yeni bir görüntüyle değiştirmek için bu işlevi çağırabilirsiniz.
BOOL Replace(
int nImage,
CBitmap* pbmImage,
CBitmap* pbmMask);
int Replace(
int nImage,
HICON hIcon);
Parametreler
nImage
Değiştirilecek görüntünün sıfır tabanlı dizini.
pbmImage
Görüntüyü içeren bit eşlem işaretçisi.
pbmMask
Maskeyi içeren bit eşlem işaretçisi. Görüntü listesiyle maske kullanılmazsa, bu parametre yoksayılır.
hIcon
Yeni görüntü için bit eşlem ve maske içeren simge tutamacı.
Dönüş Değeri
Döndüren BOOL
sürüm başarılı olursa sıfır dışı döndürür; aksi takdirde 0 döndürür.
Döndüren int
sürüm, başarılı olursa görüntünün sıfır tabanlı dizinini döndürür; aksi takdirde - 1.
Açıklamalar
Yeni, geçerli görüntüleri yer tutucu görüntü dizin numaralarına atamak için çağırdıktan SetImageCount
sonra bu üye işlevini çağırın.
Örnek
örneğine CImageList::SetImageCount
bakın.
CImageList::SetBkColor
Resim listesinin arka plan rengini ayarlamak için bu işlevi çağırın.
COLORREF SetBkColor(COLORREF cr);
Parametreler
cr
Ayarlanacağı arka plan rengi. Olabilir CLR_NONE
. Bu durumda, görüntüler maske kullanılarak saydam olarak çizilir.
Dönüş Değeri
Başarılı olursa önceki arka plan rengi; aksi takdirde CLR_NONE
.
Örnek
// Set the background color to white.
m_myImageList.SetBkColor(RGB(255, 255, 255));
ASSERT(m_myImageList.GetBkColor() == RGB(255, 255, 255));
CImageList::SetDragCursorImage
Verilen görüntüyü (genellikle fare imleci görüntüsü) geçerli sürükleme görüntüsüyle birleştirerek yeni bir sürükleme görüntüsü oluşturur.
BOOL SetDragCursorImage(
int nDrag,
CPoint ptHotSpot);
Parametreler
nDrag
Sürükle resmiyle birleştirilecek yeni görüntünün dizini.
ptHotSpot
Yeni görüntüdeki etkin noktanın konumu.
Dönüş Değeri
Başarılı olursa sıfır olmayan; aksi takdirde 0.
Açıklamalar
Sürükleme işlevleri bir sürükleme işlemi sırasında yeni görüntüyü kullandığından, çağrısı CImageList::SetDragCursorImage
yaptıktan sonra gerçek fare imlecini gizlemek için Windows ShowCursor
işlevini kullanmanız gerekir. Aksi takdirde, sistem sürükleme işlemi boyunca iki fare imlecine sahip gibi görünebilir.
CImageList::SetImageCount
Nesnedeki CImageList
görüntü sayısını sıfırlamak için bu üye işlevini çağırın.
BOOL SetImageCount(UINT uNewCount);
Parametreler
uNewCount
Resim listesindeki yeni toplam görüntü sayısını belirten değer.
Dönüş Değeri
Başarılı olursa sıfır olmayan; aksi takdirde sıfır.
Açıklamalar
Resim listesindeki görüntü sayısını artırmak için bu üye işlevini çağırırsanız, yeni dizinleri geçerli görüntülere atamak için her ek görüntüyü çağırın Replace
. Dizinleri geçerli görüntülere atamazsanız, yeni görüntüleri oluşturan çizim işlemleri tahmin edilemez.
Bu işlevi kullanarak bir görüntü listesinin boyutunu küçültürseniz, kesilen görüntüler serbest olur.
Örnek
// 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
Bir görüntünün sıfır tabanlı dizinini katman maskeleri olarak kullanılacak görüntüler listesine eklemek için bu işlevi çağırın.
BOOL SetOverlayImage(
int nImage,
int nOverlay);
Parametreler
nImage
Katman maskesi olarak kullanılacak görüntünün sıfır tabanlı dizini.
nOverlay
Katman maskesinin tek tabanlı dizini.
Dönüş Değeri
Başarılı olursa sıfır olmayan; aksi takdirde 0.
Açıklamalar
Listeye en fazla dört dizin eklenebilir.
Katman maskesi, başka bir resmin üzerine saydam olarak çizilmiş bir resimdir. Makro kullanılarak belirtilen katman maskesinin CImageList::Draw
tek tabanlı diziniyle üye işlevini kullanarak resmin üzerine katman maskesi çizin INDEXTOOVERLAYMASK
.
Örnek
// 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
Bir arşive görüntü listesi nesnesi yazmak için bu işlevi çağır.
BOOL Write(CArchive* pArchive);
Parametreler
pArchive
Görüntü listesinin depolandığı nesnenin CArchive
işaretçisi.
Dönüş Değeri
Başarılı olursa sıfır olmayan; aksi takdirde 0.
Örnek
// 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);
Ayrıca bkz.
CObject
Sınıf
Hiyerarşi Grafiği
CListCtrl
Sınıf
CTabCtrl
Sınıf