Aracılığıyla paylaş


CBitmap Sınıf

Bir Windows grafik cihaz arabirimi (GDI) bit eşlemini kapsüller ve bit eşlemi işlemek için üye işlevleri sağlar.

Sözdizimi

class CBitmap : public CGdiObject

Üyeler

Ortak Oluşturucular

Veri Akışı Adı Açıklama
CBitmap::CBitmap Bir CBitmap nesne oluşturur.

Genel Yöntemler

Veri Akışı Adı Açıklama
CBitmap::CreateBitmap Nesneyi, belirtilen genişlik, yükseklik ve bit deseni olan cihaza bağımlı bir bellek bit eşlemi ile başlatır.
CBitmap::CreateBitmapIndirect Nesneyi, bir yapıda verilen genişlik, yükseklik ve bit deseni (belirtilmişse) ile bir BITMAP bit eşlem ile başlatır.
CBitmap::CreateCompatibleBitmap Belirtilen bir cihazla uyumlu olması için nesneyi bit eşlem ile başlatır.
CBitmap::CreateDiscardableBitmap Nesneyi, belirtilen bir cihazla uyumlu atılabilir bir bit eşlem ile başlatır.
CBitmap::FromHandle Bir Windows HBITMAP bit eşlemine CBitmap tanıtıcı verildiğinde nesneye bir işaretçi döndürür.
CBitmap::GetBitmap Bir BITMAP yapıyı bit eşlem hakkındaki bilgilerle doldurur.
CBitmap::GetBitmapBits Belirtilen bit eşlem bitlerini belirtilen arabelleğe kopyalar.
CBitmap::GetBitmapDimension Bit eşlem genişliğini ve yüksekliğini döndürür. Yükseklik ve genişlik değerinin daha önce üye işlevi tarafından SetBitmapDimension ayarlandığı varsayılır.
CBitmap::LoadBitmap Uygulamanın yürütülebilir dosyasından adlandırılmış bir bit eşlem kaynağı yükleyerek ve bit eşlemi nesneye ekleyerek nesnesini başlatır.
CBitmap::LoadMappedBitmap Bit eşlem yükler ve renkleri geçerli sistem renklerine eşler.
CBitmap::LoadOEMBitmap Önceden tanımlanmış bir Windows bit eşlemini yükleyip bit eşlemi nesneye ekleyerek nesnesini başlatır.
CBitmap::SetBitmapBits Bit eşlem bitlerini belirtilen bit değerlerine ayarlar.
CBitmap::SetBitmapDimension Bit eşlem için 0,1 milimetre birim cinsinden genişlik ve yükseklik atar.

Ortak İşleçler

Veri Akışı Adı Açıklama
CBitmap::operator HBITMAP Nesneye bağlı Windows tutamacını CBitmap döndürür.

Açıklamalar

Bir CBitmap nesneyi kullanmak için nesnesini oluşturup başlatma üyesi işlevlerinden biriyle buna bir bit eşlem tutamacı ekleyin ve nesnenin üye işlevlerini çağırın.

gibi CBitmapgrafik nesneleri kullanma hakkında daha fazla bilgi için bkz . Grafik Nesneleri.

Devralma Hiyerarşisi

CObject

CGdiObject

CBitmap

Gereksinimler

Üstbilgi: afxwin.h

CBitmap::CBitmap

Bir CBitmap nesne oluşturur.

CBitmap();

Açıklamalar

Sonuçta elde edilen nesne başlatma üye işlevlerinden biriyle başlatılmalıdır.

CBitmap::CreateBitmap

Belirtilen genişlik, yükseklik ve bit deseni olan cihaza bağımlı bir bellek bit eşlemi başlatır.

BOOL CreateBitmap(
    int nWidth,
    int nHeight,
    UINT nPlanes,
    UINT nBitcount,
    const void* lpBits);

Parametreler

nWidth
Bit eşlem genişliğini (piksel cinsinden) belirtir.

nHeight
Bit eşlem yüksekliğini (piksel cinsinden) belirtir.

nPlanes
Bit eşlem içindeki renk düzlemlerinin sayısını belirtir.

nBitcount
Görüntü pikseli başına renk biti sayısını belirtir.

lpBits
İlk bit eşlem bit değerlerini içeren bir bayt dizisine işaret eder. ise NULL, yeni bit eşlem başlatılmamış olarak bırakılır.

Dönüş Değeri

Başarılı olursa sıfır olmayan; aksi takdirde 0.

Açıklamalar

Renkli bit eşlem nPlanes için veya nBitcount parametresi 1 olarak ayarlanmalıdır. Bu parametrelerin her ikisi de 1 olarak ayarlanırsa, CreateBitmap tek renkli bir bit eşlem oluşturur.

Bir bit eşlem görüntüleme cihazı için doğrudan seçilemiyor olsa da, işlevi kullanılarak CDC::SelectObject bir "bellek cihazı bağlamı" için geçerli bit eşlem olarak seçilebilir ve uyumlu herhangi bir cihaz bağlamı CDC::BitBlt kullanılarak kopyalanabilir.

İşlev tarafından CreateBitmap oluşturulan nesneyle CBitmap bitirdiğinizde, önce cihaz bağlamından bit eşlemi seçin, ardından nesneyi silinCBitmap.

Daha fazla bilgi için yapıdaki alanın açıklamasına bmBits BITMAP bakın. Yapı BITMAP , üye işlevi altında CBitmap::CreateBitmapIndirect açıklanmıştır.

CBitmap::CreateBitmapIndirect

tarafından işaret lpBitmapedilen yapıda verilen genişlik, yükseklik ve bit desenine (belirtilmişse) sahip bir bit eşlem başlatır.

BOOL CreateBitmapIndirect(LPBITMAP lpBitmap);

Parametreler

lpBitmap
Bit eşlem hakkında bilgi içeren bir BITMAP yapıyı gösterir.

Dönüş Değeri

Başarılı olursa sıfır olmayan; aksi takdirde 0.

Açıklamalar

Görüntü cihazı için bit eşlem doğrudan seçilemiyor olsa da, veya CDC::StretchBlt işlevi kullanılarak CDC::SelectObject bir bellek cihazı bağlamı için geçerli bit eşlem olarak seçilebilir ve uyumlu herhangi bir cihaz bağlamı CDC::BitBlt kullanılarak kopyalanabilir. (İşlev, CDC::PatBlt geçerli fırçanın bit eşlemini doğrudan görüntü cihazı bağlamlarına kopyalayabilir.)

parametresi tarafından BITMAP lpBitmap işaret edilen yapı işlevi kullanılarak GetObject doldurulmuşsa bit eşlem bitleri belirtilmez ve bit eşlem başlatılmaz. Bir uygulama, bit eşlemi başlatmak için veya SetDIBits gibi CDC::BitBlt bir işlev kullanarak ilk parametresiyle CGdiObject::GetObject tanımlanan bitleri bitleri tarafından CreateBitmapIndirectoluşturulan bit eşlemine kopyalayabilir.

İşlevle oluşturulan nesneyle CBitmap CreateBitmapIndirect bitirdiğinizde, önce cihaz bağlamından bit eşlemi seçin, ardından nesneyi silin CBitmap .

CBitmap::CreateCompatibleBitmap

tarafından pDCbelirtilen cihazla uyumlu bir bit eşlem başlatır.

BOOL CreateCompatibleBitmap(
    CDC* pDC,
    int nWidth,
    int nHeight);

Parametreler

pDC
Cihaz bağlamını belirtir.

nWidth
Bit eşlem genişliğini (piksel cinsinden) belirtir.

nHeight
Bit eşlem yüksekliğini (piksel cinsinden) belirtir.

Dönüş Değeri

Başarılı olursa sıfır olmayan; aksi takdirde 0.

Açıklamalar

Bit eşlem, belirtilen cihaz bağlamı ile aynı sayıda renkli düzleme veya piksel başına bit biçimine sahiptir. tarafından pDCbelirtilen ile uyumlu herhangi bir bellek cihazı için geçerli bit eşlem olarak seçilebilir.

Bellek cihazı bağlamı ise pDC , döndürülen bit eşlem, bu cihaz bağlamında seçili durumdaki bit eşlem ile aynı biçime sahiptir. "Bellek cihazı bağlamı", bir ekran yüzeyini temsil eden bir bellek bloğudur. Görüntüleri uyumlu cihazın gerçek ekran yüzeyine kopyalamadan önce bellekte hazırlamak için kullanılabilir.

Bir bellek cihazı bağlamı oluşturulduğunda, GDI bunun için otomatik olarak tek renkli bir stok bit eşlemi seçer.

Renkli bellek cihazı bağlamında renk veya tek renkli bit eşlemler seçilebileceği için, işlev tarafından CreateCompatibleBitmap döndürülen bit eşlem biçimi her zaman aynı değildir; ancak, eşlenmemiş bir cihaz bağlamı için uyumlu bit eşlem biçimi her zaman cihazın biçimindedir.

İşlevle oluşturulan nesneyle CBitmap CreateCompatibleBitmap bitirdiğinizde, önce cihaz bağlamından bit eşlemi seçin, ardından nesneyi silin CBitmap .

CBitmap::CreateDiscardableBitmap

tarafından pDCtanımlanan cihaz bağlamıyla uyumlu atılabilir bir bit eşlem başlatır.

BOOL CreateDiscardableBitmap(
    CDC* pDC,
    int nWidth,
    int nHeight);

Parametreler

pDC
Cihaz bağlamı belirtir.

nWidth
Bit eşlem genişliğini (bit cinsinden) belirtir.

nHeight
Bit eşleminin yüksekliğini (bit cinsinden) belirtir.

Dönüş Değeri

Başarılı olursa sıfır olmayan; aksi takdirde 0.

Açıklamalar

Bit eşlem, belirtilen cihaz bağlamı ile aynı sayıda renkli düzleme veya piksel başına bit biçimine sahiptir. Bir uygulama, tarafından pDCbelirtilenle uyumlu bir bellek cihazı için geçerli bit eşlem olarak bu bit eşlemi seçebilir.

Windows, bu işlev tarafından oluşturulan bit eşlemi yalnızca bir uygulama görüntüleme bağlamı olarak seçmediyse atabilir. Windows bit eşlemi seçili olmadığında atarsa ve uygulama daha sonra bu bit eşlemi seçmeye çalışırsa işlev CDC::SelectObject NULL döndürür.

İşlevle oluşturulan nesneyle CBitmap CreateDiscardableBitmap bitirdiğinizde, önce cihaz bağlamından bit eşlemi seçin, ardından nesneyi silin CBitmap .

CBitmap::FromHandle

Windows GDI bit eşlemine CBitmap tanıtıcı verildiğinde nesneye bir işaretçi döndürür.

static CBitmap* PASCAL FromHandle(HBITMAP hBitmap);

Parametreler

hBitmap
Bir Windows GDI bit eşlem belirtir.

Dönüş Değeri

Başarılı olursa nesne CBitmap işaretçisi; aksi takdirde NULL.

Açıklamalar

Bir CBitmap nesne tanıtıcıya zaten bağlı değilse, geçici CBitmap bir nesne oluşturulur ve eklenir. Bu geçici CBitmap nesne, yalnızca uygulamanın olay döngüsünde boşta kalma süresine sahip olduğu ve tüm geçici grafik nesnelerinin silindiği bir sonraki zamana kadar geçerlidir. Bunu söylemenin bir diğer yolu da geçici nesnenin yalnızca bir pencere iletisinin işlenmesi sırasında geçerli olmasıdır.

CBitmap::GetBitmap

Ekli bit eşlem için görüntü özelliklerini alır.

int GetBitmap(BITMAP* pBitMap);

Parametreler

pBitMap
Görüntü özelliklerini alacak bir BITMAP yapı işaretçisi. Bu parametre olmamalıdır NULL.

Dönüş Değeri

Yöntem başarılı olursa sıfır olmayan; aksi takdirde 0.

Açıklamalar

CBitmap::GetBitmapBits

Eklenen bit eşleminin bit desenini belirtilen arabelleğe kopyalar.

DWORD GetBitmapBits(
    DWORD dwCount,
    LPVOID lpBits) const;

Parametreler

dwCount
Arabelleğe kopyalanacak bayt sayısı.

lpBits
Bit eşlemi alacak arabelleğe işaretçi.

Dönüş Değeri

Yöntem başarılı olursa arabelleğe kopyalanan bayt sayısı; aksi takdirde 0.

Açıklamalar

Gerekli arabellek boyutunu belirlemek için kullanın CBitmap::GetBitmap .

CBitmap::GetBitmapDimension

Bit eşlem genişliğini ve yüksekliğini döndürür.

CSize GetBitmapDimension() const;

Dönüş Değeri

Bit eşlem genişliği ve yüksekliği 0,1 milimetre cinsinden ölçülür. Yükseklik nesnenin cy CSize üyesinde ve genişlik de üyededir cx . Bit eşlem genişliği ve yüksekliği kullanılarak SetBitmapDimensionayarlanmamışsa, dönüş değeri 0'dır.

Açıklamalar

Yükseklik ve genişlik değerinin daha önce üye işlevi kullanılarak SetBitmapDimension ayarlandığı varsayılır.

CBitmap::LoadBitmap

uygulamanın yürütülebilir dosyasındaki kimlik numarası tarafından lpszResourceName adlandırılan veya kimlik numarasıyla nIDResource tanımlanan bit eşlem kaynağını yükler.

BOOL LoadBitmap(LPCTSTR lpszResourceName);
BOOL LoadBitmap(UINT nIDResource);

Parametreler

lpszResourceName
Bit eşlem kaynağının adını içeren null olarak sonlandırılan bir dizeyi gösterir.

nIDResource
Bit eşlem kaynağının kaynak kimliği numarasını belirtir.

Dönüş Değeri

Başarılı olursa sıfır olmayan; aksi takdirde 0.

Açıklamalar

Yüklenen bit eşlem nesneye CBitmap eklenir.

tarafından lpszResourceName tanımlanan bit eşlem yoksa veya bit eşlemi yüklemek için yeterli bellek yoksa işlev 0 döndürür.

İşlev tarafından LoadBitmap yüklenen bit eşlemi silmek için işlevini kullanabilirsinizCGdiObject::DeleteObject, aksi takdirde CBitmap yıkıcı nesneyi sizin için siler.

Dikkat

Nesneyi silmeden önce, bir cihaz bağlamında seçilmediğinden emin olun.

Windows 3.1 ve sonraki sürümlerine aşağıdaki bit eşlemler eklendi:

OBM_UPARRROWIOBM_DNARROWIOBM_RGARROWIOBM_LFARROWI

Bu bit eşlemler, Windows 3.0 ve önceki sürümlerin cihaz sürücülerinde bulunmaz. Bit eşlemlerin tam listesi ve görünümlerinin görüntülenmesi için bkz. Windows SDK'sı.

CBitmap::LoadMappedBitmap

Bit eşlem yüklemek ve renkleri geçerli sistem renklerine eşlemek için bu üye işlevini çağırın.

BOOL LoadMappedBitmap(
    UINT nIDBitmap,
    UINT nFlags = 0,
    LPCOLORMAP lpColorMap = NULL,
    int nMapSize = 0);

Parametreler

nIDBitmap
Bit eşlem kaynağının kimliği.

nFlags
Bit eşlem bayrağı. Sıfır veya CMB_MASKEDolabilir.

lpColorMap
Bit eşlemleri eşlemek için gereken renk bilgilerini içeren bir COLORMAP yapı işaretçisi. Bu parametre ise NULL, işlev varsayılan renk eşlemesini kullanır.

nMapSize
tarafından lpColorMapişaret edilen renk eşlemelerinin sayısı.

Dönüş Değeri

Başarılı olursa sıfır olmayan; aksi takdirde 0.

Açıklamalar

Varsayılan olarak, LoadMappedBitmap düğme karakterlerinde yaygın olarak kullanılan renkleri eşler.

Eşlenmiş bit eşlem oluşturma hakkında bilgi için bkz. Windows işlevi CreateMappedBitmap ve COLORMAP Windows SDK'sı içindeki yapı.

CBitmap::LoadOEMBitmap

Windows tarafından kullanılan önceden tanımlanmış bir bit eşlem yükler.

BOOL LoadOEMBitmap(UINT nIDBitmap);

Parametreler

nIDBitmap
Önceden tanımlanmış Windows bit eşleminin kimlik numarası. Olası değerler aşağıda şunlardan WINDOWS.Hlistelenmiştir:

OBM_BTNCORNERS
OBM_BTSIZE
OBM_CHECK
OBM_CHECKBOXES
OBM_CLOSE
OBM_COMBO
OBM_DNARROW
OBM_DNARROWD
OBM_DNARROWI
OBM_LFARROW
OBM_LFARROWD
OBM_LFARROWI

OBM_MNARROW
OBM_OLD_CLOSE
OBM_OLD_DNARROW
OBM_OLD_LFARROW
OBM_OLD_REDUCE
OBM_OLD_RESTORE
OBM_OLD_RGARROW
OBM_OLD_UPARROW
OBM_OLD_ZOOM
OBM_REDUCE
OBM_REDUCED

OBM_RESTORE
OBM_RESTORED
OBM_RGARROW
OBM_RGARROWD
OBM_RGARROWI
OBM_SIZE
OBM_UPARROW
OBM_UPARROW
OBM_UPARROWD
OBM_ZOOM
OBM_ZOOMD

Dönüş Değeri

Başarılı olursa sıfır olmayan; aksi takdirde 0.

Açıklamalar

ile başlayan bit eşlem OBM_OLD adları, 3.0 öncesi Windows sürümleri tarafından kullanılan bit eşlemleri temsil eder.

Sabitlerden herhangi birini kullanabilmek için dahil WINDOWS.H etmeden önce sabitin OEMRESOURCE OBM_ tanımlanması gerektiğini unutmayın.

CBitmap::operator HBITMAP

Nesnenin ekli Windows GDI tutamacını CBitmap almak için bu işleci kullanın.

operator HBITMAP() const;

Dönüş Değeri

Başarılı olursa, nesnesi tarafından temsil edilen Windows GDI nesnesine bir CBitmap tanıtıcı; aksi takdirde NULL.

Açıklamalar

Bu işleç, bir nesnenin doğrudan kullanımını destekleyen bir HBITMAP atama işlecidir.

Grafik nesnelerini kullanma hakkında daha fazla bilgi için bkz . Windows SDK'sında Grafik Nesneleri .

CBitmap::SetBitmapBits

Bit eşlem bitlerini tarafından lpBitsverilen bit değerlerine ayarlar.

DWORD SetBitmapBits(
    DWORD dwCount,
    const void* lpBits);

Parametreler

dwCount
tarafından lpBitsişaret edilen bayt sayısını belirtir.

lpBits
Nesneye BYTE kopyalanacak piksel değerlerini içeren diziyi CBitmap gösterir. Bit eşleminin görüntüsünü doğru işleyebilmesi için, değerler örnek oluşturulduğunda belirtilen yükseklik, genişlik ve renk derinliği değerlerine CBitmap uyacak şekilde biçimlendirilmelidir. Daha fazla bilgi için bkz. CBitmap::CreateBitmap.

Dönüş Değeri

Bit eşlem bitlerini ayarlarken kullanılan bayt sayısı; İşlev başarısız olursa 0.

CBitmap::SetBitmapDimension

Bit eşlem için 0,1 milimetre birim cinsinden genişlik ve yükseklik atar.

CSize SetBitmapDimension(
    int nWidth,
    int nHeight);

Parametreler

nWidth
Bit eşlem genişliğini belirtir (0,1 milimetre cinsinden).

nHeight
Bit eşlem yüksekliğini belirtir (0,1 milimetre cinsinden).

Dönüş Değeri

Önceki bit eşlem boyutları. Height, nesnesinin cy üye değişkeninde CSize , width ise üye değişkenindedir cx .

Açıklamalar

GDI, bir uygulama üye işlevini çağırdığında GetBitmapDimension bunları döndürmek dışında bu değerleri kullanmaz.

Ayrıca bkz.

MFC Örnek MDI
CGdiObject Sınıf
Hiyerarşi Grafiği