Aracılığıyla paylaş


Resim Listesinden Resim Çizme

Resim çizmek için CImageList::D raw üye işlevini kullanın. Bir cihaz bağlam nesnesine yönelik bir işaretçi, çizecek görüntünün dizini, resmin çizildiği cihaz bağlamındaki konum ve çizim stilini belirtmek için bir bayrak kümesi belirteceksiniz.

ILD_TRANSPARENT stilini belirttiğinizde, Draw maskelenmiş görüntü çizmek için iki adımlı bir işlem kullanır. İlk olarak, görüntünün bitleri ve maskenin bitleri üzerinde bir mantıksal AND işlemi gerçekleştirir. Ardından ilk işlemin sonuçları ve hedef cihaz bağlamının arka plan bitleri üzerinde bir mantıksal-XOR işlemi gerçekleştirir. Bu işlem, sonuçta elde edilen görüntüde saydam alanlar oluşturur; diğer bir ifadeyle, maskedeki her beyaz bit, sonuçta elde edilen görüntüdeki ilgili bitin saydam olmasını neden olur.

Düz renkli arka plana maskelenmiş bir resim çizmeden önce, resim listesinin arka plan rengini hedefle aynı renge ayarlamak için SetBkColor üye işlevini kullanmanız gerekir. Rengin ayarlanması, görüntüde saydam alanlar oluşturma gereksinimini ortadan kaldırır ve görüntüyü hedef cihaz bağlamlarına kopyalamaya olanak tanır Draw ve bu da performansta önemli bir artışa neden olur. Resmi çizmek için çağırdığınızda DrawILD_NORMAL stilini belirtin.

Maskelenmiş resim listesi (CImageList) için arka plan rengini istediğiniz zaman ayarlayabilirsiniz; böylece herhangi bir düz arka plana doğru çizilir. Arka plan renginin CLR_NONE olarak ayarlanması, görüntülerin varsayılan olarak saydam olarak çizilmesine neden olur. Resim listesinin arka plan rengini almak için GetBkColor üye işlevini kullanın.

ILD_BLEND25 ve ILD_BLEND50 stilleri, sistem vurgu rengiyle görüntüyü titretir. Bu stiller, kullanıcının seçebileceği bir nesneyi temsil etmek için maskelenmiş bir görüntü kullanırsanız kullanışlıdır. Örneğin, kullanıcı seçtiğinde resmi çizmek için ILD_BLEND50 stilini kullanabilirsiniz.

Maskelenmeyen bir görüntü, raster işlemi kullanılarak hedef cihaz bağlamlarına SRCCOPY kopyalanır. Görüntüdeki renkler, cihaz bağlamının arka plan renginden bağımsız olarak aynı görünür. içinde Draw belirtilen çizim stillerinin maskelenmemiş bir görüntünün görünümü üzerinde hiçbir etkisi yoktur.

Draw üye işlevine ek olarak DrawIndirect işlevi, görüntü işleme özelliğini genişletir. DrawIndirectparametresi olarak IMAGELISTDRAWPARAMS yapısını alır. Bu yapı, tarama işlemi (ROP) kodlarının kullanımı da dahil olmak üzere geçerli görüntünün işlenmesini özelleştirmek için kullanılabilir. ROP kodları hakkında daha fazla bilgi için bkz . Windows SDK'sında Tarama İşlem Kodları ve Bit Eşlemleri Fırça olarak .

Ayrıca bkz.

CImageList Kullanma
Denetimler