CImageList
Sınıf
Windows ortak görüntü listesi denetiminin işlevselliğini sağlar.
class CImageList : public CObject
Veri Akışı Adı | Açıklama |
---|---|
CImageList::CImageList |
Bir CImageList nesne oluşturur. |
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. |
Veri Akışı Adı | Açıklama |
---|---|
CImageList::operator HIMAGELIST |
HIMAGELIST öğesine eklenmiş olan öğesini CImageList döndürür. |
Veri Akışı Adı | Açıklama |
---|---|
CImageList::m_hImageList |
Bu nesneye eklenmiş görüntü listesini içeren tanıtıcı. |
"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
.
CImageList
Üstbilgi: afxcmn.h
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);
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ı.
Başarılı olursa ilk yeni görüntünün sıfır tabanlı dizini; aksi takdirde - 1.
İşiniz bittiğinde simge tutamacını serbest bırakmak sizin sorumluluğunuzdadır.
// 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));
Nesneye resim listesi eklemek için CImageList
bu işlevi çağır.
BOOL Attach(HIMAGELIST hImageList);
hImageList
Resim listesi nesnesinin tanıtıcısı.
Ek başarılı olursa sıfır olmayan; aksi takdirde 0.
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();
}
Görüntüyü sürüklemeye başlamak için bu işlevi çağır.
BOOL BeginDrag(
int nImage,
CPoint ptHotSpot);
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.
Başarılı olursa sıfır olmayan; aksi takdirde 0.
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
.
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);
}
Bir CImageList
nesne oluşturur.
CImageList();
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);
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.
Başarılı olursa sıfır olmayan; aksi takdirde sıfır.
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);
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);
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
.
Başarılı olursa sıfır olmayan; aksi takdirde 0.
İ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.
m_myImageList.Create(32, 32, ILC_COLOR8, 0, 4);
Resim listesini silmek için bu işlevi çağır.
BOOL DeleteImageList();
Başarılı olursa sıfır olmayan; aksi takdirde 0.
// Delete the image list and verify.
myImageList2.DeleteImageList();
ASSERT(myImageList2.GetSafeHandle() == NULL);
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();
// Note that this is a static member so an instantiated CImageList
// object is unnecessary.
CImageList::DeleteTempMap();
Resim listesi nesnesini bir nesneden CImageList
ayırmak için bu işlevi çağır.
HIMAGELIST Detach();
Resim listesi nesnesinin tanıtıcısı.
Bu işlev, görüntü listesi nesnesine bir tanıtıcı döndürür.
örneğine CImageList::Attach
bakın.
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);
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).
Başarılı olursa sıfır olmayan; aksi takdirde 0.
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.
örneğine CImageList::BeginDrag
bakın.
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);
pWndLock
Sürükleme resminin sahibi olan pencerenin işaretçisi.
Başarılı olursa sıfır olmayan; aksi takdirde 0.
örneğine CImageList::EndDrag
bakın.
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);
pt
Yeni sürükleme konumu.
Başarılı olursa sıfır olmayan; aksi takdirde 0.
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
.
void CImageListDlg::OnMouseMove(UINT nFlags, CPoint point)
{
m_myImageList.DragMove(point);
CDialog::OnMouseMove(nFlags, point);
}
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);
bShow
Sürükleme görüntüsünün gösterilip gösterilmeymeyeceğini belirtir.
Başarılı olursa sıfır olmayan; aksi takdirde 0.
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.
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);
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. |
Başarılı olursa sıfır olmayan; aksi takdirde 0.
örneğine CImageList::SetOverlayImage
bakın.
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);
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
.
Başarılı olursa sıfır olmayan; aksi takdirde 0.
İşlev, belirtilen çizim stilini kullanır ve görüntüyü belirtilen renkle harmanlar.
m_myImageList.DrawEx(&dc, 0, CPoint(0, 0), CSize(16, 16), CLR_DEFAULT,
CLR_DEFAULT, ILD_IMAGE);
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);
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.
TRUE
resim başarıyla çizilirse; aksi takdirde FALSE
.
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
.
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;
}
Sürükleme işlemini sonlandırmak için bu işlevi çağır.
static void PASCAL EndDrag();
Sürükleme işlemine başlamak için üye işlevini kullanın BeginDrag
.
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);
}
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);
nImage
Görüntünün sıfır tabanlı dizini.
Başarılı olursa simgenin tutamacı; aksi takdirde NULL
.
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.
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;
}
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);
hImageList
Görüntü listesini belirtir.
Başarılı olursa nesne CImageList
işaretçisi; aksi takdirde NULL
.
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.
CImageList *ConvertHandle(HIMAGELIST hmyImageList)
{
// Convert the HIMAGELIST to a CImageList*.
ASSERT(hmyImageList != NULL);
CImageList *pmyImageList = CImageList::FromHandle(hmyImageList);
ASSERT(pmyImageList != NULL);
return pmyImageList;
}
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);
hImageList
Görüntü listesini belirtir.
Başarılı olursa nesne CImageList
işaretçisi; aksi takdirde NULL
.
Bir CImageList
nesne tanıtıcıya bağlı değilse döndürülür NULL
.
CImageList *ConvertHandlePermanent(HIMAGELIST hmyImageList)
{
// Convert the HIMAGELIST to a CImageList*.
ASSERT(hmyImageList != NULL);
CImageList *pmyImageList = CImageList::FromHandlePermanent(hmyImageList);
ASSERT(pmyImageList != NULL);
return pmyImageList;
}
Resim listesinin geçerli arka plan rengini almak için bu işlevi çağırın.
COLORREF GetBkColor() const;
Nesne arka plan renginin CImageList
RGB renk değeri.
örneğine CImageList::SetBkColor
bakın.
Sürüklemek için kullanılan geçici görüntü listesini alır.
static CImageList* PASCAL GetDragImage(
LPPOINT lpPoint,
LPPOINT lpPointHotSpot);
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.
Başarılı olursa, sürüklemek için kullanılan geçici görüntü listesinin işaretçisi; aksi takdirde , NULL
.
Resim listesindeki görüntü sayısını almak için bu işlevi çağırın.
int GetImageCount() const;
Resim sayısı.
örneğine CImageList::ExtractIcon
bakın.
Görüntü hakkındaki bilgileri almak için bu işlevi çağır.
BOOL GetImageInfo(
int nImage,
IMAGEINFO* pImageInfo) const;
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.
Başarılı olursa sıfır olmayan; aksi takdirde 0.
Yapı, IMAGEINFO
görüntü listesindeki bir görüntü hakkında bilgi içerir.
Veri üyesini almak için bu işlevi çağırın m_hImageList
.
HIMAGELIST GetSafeHandle() const;
Ekli görüntü listesinin tutamacı; aksi takdirde NULL
hiçbir nesne eklenmemişse.
// Get the safe handle to the image list.
HIMAGELIST hImageList = m_myImageList.GetSafeHandle();
Bu nesneye eklenmiş görüntü listesinin tutamacı.
HIMAGELIST m_hImageList;
Veri m_hImageList
üyesi türünde HIMAGELIST
bir ortak değişkendir.
// Get the safe handle to the image list.
HIMAGELIST hImageList = m_myImageList.m_hImageList;
Nesnenin ekli tutamacını CImageList
almak için bu işleci kullanın.
operator HIMAGELIST() const;
Başarılı olursa, nesnesi tarafından temsil edilen görüntü listesinin tanıtıcısı CImageList
; aksi takdirde NULL
.
Bu işleç, bir nesnenin doğrudan kullanımını destekleyen bir HIMAGELIST
atama işlecidir.
// Get the safe handle to the image list.
HIMAGELIST hImageList = m_myImageList;
Arşivden bir resim listesini okumak için bu işlevi çağır.
BOOL Read(CArchive* pArchive);
pArchive
Resim listesinin okunacağı nesnenin CArchive
işaretçisi.
Başarılı olursa sıfır olmayan; aksi takdirde 0.
// 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);
Görüntü listesi nesnesinden bir görüntüyü kaldırmak için bu işlevi çağır.
BOOL Remove(int nImage);
nImage
Kaldırılacak görüntünün sıfır tabanlı dizini.
Başarılı olursa sıfır olmayan; aksi takdirde 0.
İ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.
// Remove every other image from the image list.
for (int i = 0; i < m_myImageList.GetImageCount(); i++)
{
m_myImageList.Remove(i);
}
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);
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ö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.
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.
örneğine CImageList::SetImageCount
bakın.
Resim listesinin arka plan rengini ayarlamak için bu işlevi çağırın.
COLORREF SetBkColor(COLORREF cr);
cr
Ayarlanacağı arka plan rengi. Olabilir CLR_NONE
. Bu durumda, görüntüler maske kullanılarak saydam olarak çizilir.
Başarılı olursa önceki arka plan rengi; aksi takdirde CLR_NONE
.
// Set the background color to white.
m_myImageList.SetBkColor(RGB(255, 255, 255));
ASSERT(m_myImageList.GetBkColor() == RGB(255, 255, 255));
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);
nDrag
Sürükle resmiyle birleştirilecek yeni görüntünün dizini.
ptHotSpot
Yeni görüntüdeki etkin noktanın konumu.
Başarılı olursa sıfır olmayan; aksi takdirde 0.
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.
Nesnedeki CImageList
görüntü sayısını sıfırlamak için bu üye işlevini çağırın.
BOOL SetImageCount(UINT uNewCount);
uNewCount
Resim listesindeki yeni toplam görüntü sayısını belirten değer.
Başarılı olursa sıfır olmayan; aksi takdirde sıfır.
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.
// 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);
}
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);
nImage
Katman maskesi olarak kullanılacak görüntünün sıfır tabanlı dizini.
nOverlay
Katman maskesinin tek tabanlı dizini.
Başarılı olursa sıfır olmayan; aksi takdirde 0.
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
.
// 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));
}
Bir arşive görüntü listesi nesnesi yazmak için bu işlevi çağır.
BOOL Write(CArchive* pArchive);
pArchive
Görüntü listesinin depolandığı nesnenin CArchive
işaretçisi.
Başarılı olursa sıfır olmayan; aksi takdirde 0.
// 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);
CObject
Sınıf
Hiyerarşi Grafiği
CListCtrl
Sınıf
CTabCtrl
Sınıf