CBitmap
-Klasse
Kapselt eine Bitmap der Windows GDI (Graphics Device Interface) und stellt Memberfunktionen zur Bearbeitung der Bitmap bereit.
Syntax
class CBitmap : public CGdiObject
Member
Öffentliche Konstruktoren
Name | Beschreibung |
---|---|
CBitmap::CBitmap |
Erstellt ein CBitmap -Objekt. |
Öffentliche Methoden
Name | Beschreibung |
---|---|
CBitmap::CreateBitmap |
Initialisiert das Objekt mit einer geräteabhängigen Speicherbitmap mit einer angegebenen Breite, Höhe und Bitmuster. |
CBitmap::CreateBitmapIndirect |
Initialisiert das Objekt mit einer Bitmap mit der Breite, Höhe und dem Bitmuster (sofern angegeben), die in einer BITMAP Struktur angegeben wird. |
CBitmap::CreateCompatibleBitmap |
Initialisiert das Objekt mit einer Bitmap, sodass es mit einem angegebenen Gerät kompatibel ist. |
CBitmap::CreateDiscardableBitmap |
Initialisiert das Objekt mit einer verworfenen Bitmap, die mit einem angegebenen Gerät kompatibel ist. |
CBitmap::FromHandle |
Gibt einen Zeiger auf ein CBitmap Objekt zurück, wenn ein Handle auf eine Windows-Bitmap HBITMAP übergeben wird. |
CBitmap::GetBitmap |
Füllt eine BITMAP Struktur mit Informationen zur Bitmap aus. |
CBitmap::GetBitmapBits |
Kopiert die Bits der angegebenen Bitmap in den angegebenen Puffer. |
CBitmap::GetBitmapDimension |
Gibt die Breite und Höhe der Bitmap zurück. Es wird davon ausgegangen, dass die Höhe und Breite zuvor von der SetBitmapDimension Memberfunktion festgelegt wurden. |
CBitmap::LoadBitmap |
Initialisiert das Objekt, indem eine benannte Bitmapressource aus der ausführbaren Datei der Anwendung geladen und die Bitmap an das Objekt angefügt wird. |
CBitmap::LoadMappedBitmap |
Lädt eine Bitmap und ordnet Farben aktuellen Systemfarben zu. |
CBitmap::LoadOEMBitmap |
Initialisiert das Objekt, indem eine vordefinierte Windows-Bitmap geladen und die Bitmap an das Objekt angefügt wird. |
CBitmap::SetBitmapBits |
Legt die Bits einer Bitmap auf die angegebenen Bitwerte fest. |
CBitmap::SetBitmapDimension |
Weist einer Bitmap in 0,1-Millimeter-Einheiten eine Breite und Höhe zu. |
Öffentliche Operatoren
Name | Beschreibung |
---|---|
CBitmap::operator HBITMAP |
Gibt das dem Objekt angefügte CBitmap Windows-Handle zurück. |
Hinweise
Um ein CBitmap
Objekt zu verwenden, erstellen Sie das Objekt, fügen Sie ein Bitmaphandle mit einer der Initialisierungselementfunktionen an, und rufen Sie dann die Memberfunktionen des Objekts auf.
Weitere Informationen zur Verwendung von Grafikobjekten wie CBitmap
z. B. Grafikobjekten finden Sie unter "Grafikobjekte".
Vererbungshierarchie
CBitmap
Anforderungen
Header: afxwin.h
CBitmap::CBitmap
Erstellt ein CBitmap
-Objekt.
CBitmap();
Hinweise
Das resultierende Objekt muss mit einer der Initialisierungselementfunktionen initialisiert werden.
CBitmap::CreateBitmap
Initialisiert eine geräteabhängige Speicherbitmap, die die angegebene Breite, Höhe und das angegebene Bitmuster aufweist.
BOOL CreateBitmap(
int nWidth,
int nHeight,
UINT nPlanes,
UINT nBitcount,
const void* lpBits);
Parameter
nWidth
Gibt die Breite der Bitmap (in Pixeln) an.
nHeight
Gibt die Höhe der Bitmap (in Pixeln) an.
nPlanes
Gibt die Anzahl von Farbebenen in der Bitmap an.
nBitcount
Gibt die Anzahl der Farbbits pro Anzeigepixel an.
lpBits
Zeigt auf ein Array von Bytes, das die ursprünglichen Bitwerte der Bitmap enthält. Wenn dies der Grund ist NULL
, bleibt die neue Bitmap nicht initialisiert.
Rückgabewert
Ungleich Null, wenn erfolgreich, andernfalls 0 (Null).
Hinweise
Für eine Farbbitmap muss entweder der nPlanes
- oder nBitcount
-Parameter auf 1 festgelegt werden. Wenn beide Parameter auf 1 festgelegt sind, erstellt CreateBitmap
eine monochrome Bitmap.
Obwohl eine Bitmap für ein Anzeigegerät nicht direkt ausgewählt werden kann, kann sie mithilfe der Funktion als aktuelle Bitmap für einen "Speichergerätekontext" CDC::SelectObject
ausgewählt und in CDC::BitBlt
jeden kompatiblen Gerätekontext kopiert werden.
Wenn Sie mit dem CBitmap
-Objekt fertig sind, das von der CreateBitmap
-Funktion erstellt wurde, wählen Sie zunächst die Bitmap im Gerätekontext aus, und löschen Sie dann das CBitmap
-Objekt.
Weitere Informationen finden Sie in der Beschreibung des bmBits
Felds in der BITMAP
Struktur. Die BITMAP
Struktur wird unter der CBitmap::CreateBitmapIndirect
Memberfunktion beschrieben.
CBitmap::CreateBitmapIndirect
Initialisiert eine Bitmap mit der Breite, Höhe und Bitmuster (sofern angegeben) in der Struktur, auf lpBitmap
die verwiesen wird.
BOOL CreateBitmapIndirect(LPBITMAP lpBitmap);
Parameter
lpBitmap
Verweist auf eine BITMAP
Struktur, die Informationen zur Bitmap enthält.
Rückgabewert
Ungleich Null, wenn erfolgreich, andernfalls 0 (Null).
Hinweise
Obwohl eine Bitmap für ein Anzeigegerät nicht direkt ausgewählt werden kann, kann sie als aktuelle Bitmap für einen Speichergerätekontext CDC::SelectObject
ausgewählt und in einen kompatiblen Gerätekontext mithilfe der CDC::BitBlt
oder CDC::StretchBlt
der Funktion kopiert werden. (Die CDC::PatBlt
Funktion kann die Bitmap für den aktuellen Pinsel direkt in den Anzeigegerätekontext kopieren.)
Wenn die BITMAP
struktur, auf die der lpBitmap
Parameter verweist, mithilfe der GetObject
Funktion ausgefüllt wurde, werden die Bits der Bitmap nicht angegeben, und die Bitmap wird nicht initialisiert. Um die Bitmap zu initialisieren, kann eine Anwendung eine Funktion verwenden, z CDC::BitBlt
. B. oder SetDIBits
um die Bits aus der Bitmap zu kopieren, die vom ersten Parameter der CGdiObject::GetObject
von der Bitmap erstellt wurde CreateBitmapIndirect
.
Wenn Sie mit dem CBitmap
mit CreateBitmapIndirect
der Funktion erstellten Objekt fertig sind, wählen Sie zuerst die Bitmap aus dem Gerätekontext aus, und löschen Sie das CBitmap
Objekt.
CBitmap::CreateCompatibleBitmap
Initialisiert eine Bitmap, die mit dem von pDC
ihnen angegebenen Gerät kompatibel ist.
BOOL CreateCompatibleBitmap(
CDC* pDC,
int nWidth,
int nHeight);
Parameter
pDC
Gibt den Gerätekontext an.
nWidth
Gibt die Breite der Bitmap (in Pixeln) an.
nHeight
Gibt die Höhe der Bitmap (in Pixeln) an.
Rückgabewert
Ungleich Null, wenn erfolgreich, andernfalls 0 (Null).
Hinweise
Die Bitmap weist dieselbe Anzahl von Farbebenen oder dasselbe Bit-pro-Pixel-Format wie der angegebene Gerätekontext auf. Sie kann als aktuelle Bitmap für jedes Speichergerät ausgewählt werden, das mit dem durch die Angegebene pDC
kompatibel ist.
Wenn pDC
es sich um einen Speichergerätekontext handelt, weist die zurückgegebene Bitmap das gleiche Format wie die aktuell ausgewählte Bitmap in diesem Gerätekontext auf. Ein "Speichergerätekontext" ist ein Speicherblock, der eine Anzeigeoberfläche darstellt. Es kann verwendet werden, um Bilder im Arbeitsspeicher vorzubereiten, bevor sie auf die tatsächliche Anzeigeoberfläche des kompatiblen Geräts kopiert werden.
Wenn ein Speichergerätekontext erstellt wird, wählt GDI automatisch eine monochrome Stock-Bitmap dafür aus.
Da ein Farbspeichergerätekontext entweder Farb- oder Monochrombitmaps ausgewählt haben kann, ist das Format der von der CreateCompatibleBitmap
Funktion zurückgegebenen Bitmap nicht immer identisch. Das Format einer kompatiblen Bitmap für einen nicht-theoretischen Gerätekontext ist jedoch immer im Format des Geräts enthalten.
Wenn Sie mit dem CBitmap
mit der CreateCompatibleBitmap
Funktion erstellten Objekt fertig sind, wählen Sie zuerst die Bitmap aus dem Gerätekontext aus, und löschen Sie das CBitmap
Objekt.
CBitmap::CreateDiscardableBitmap
Initialisiert eine verworfene Bitmap, die mit dem gerätekontext kompatibel ist, der von pDC
.
BOOL CreateDiscardableBitmap(
CDC* pDC,
int nWidth,
int nHeight);
Parameter
pDC
Gibt einen Gerätekontext an.
nWidth
Gibt die Breite (in Bits) der Bitmap an.
nHeight
Gibt die Höhe (in Bits) der Bitmap an.
Rückgabewert
Ungleich Null, wenn erfolgreich, andernfalls 0 (Null).
Hinweise
Die Bitmap weist dieselbe Anzahl von Farbebenen oder dasselbe Bit-pro-Pixel-Format wie der angegebene Gerätekontext auf. Eine Anwendung kann diese Bitmap als aktuelle Bitmap für ein Speichergerät auswählen, das mit dem von ihnen angegebenen pDC
kompatibel ist.
Windows kann eine von dieser Funktion erstellte Bitmap nur verwerfen, wenn eine Anwendung sie nicht in einen Anzeigekontext ausgewählt hat. Wenn Windows die Bitmap verwirft, wenn sie nicht ausgewählt ist und die Anwendung später versucht, sie auszuwählen, gibt die CDC::SelectObject
Funktion NULL zurück.
Wenn Sie mit dem CBitmap
mit der CreateDiscardableBitmap
Funktion erstellten Objekt fertig sind, wählen Sie zuerst die Bitmap aus dem Gerätekontext aus, und löschen Sie das CBitmap
Objekt.
CBitmap::FromHandle
Gibt einen Zeiger auf ein CBitmap
Objekt zurück, wenn ein Handle auf eine Windows GDI-Bitmap übergeben wird.
static CBitmap* PASCAL FromHandle(HBITMAP hBitmap);
Parameter
hBitmap
Gibt eine Windows GDI-Bitmap an.
Rückgabewert
Ein Zeiger auf ein CBitmap
Objekt bei erfolgreicher Ausführung; andernfalls NULL
.
Hinweise
Wenn ein CBitmap
Objekt noch nicht an das Handle angefügt ist, wird ein temporäres CBitmap
Objekt erstellt und angefügt. Dieses temporäre CBitmap
Objekt ist nur gültig, bis die Anwendung das nächste Mal leerlauf in der Ereignisschleife hat, zu dem zeitpunkt alle temporären Grafikobjekte gelöscht werden. Eine weitere Möglichkeit, dies zu sagen, ist, dass das temporäre Objekt nur während der Verarbeitung einer Fensternachricht gültig ist.
CBitmap::GetBitmap
Ruft Bildeigenschaften für die angefügte Bitmap ab.
int GetBitmap(BITMAP* pBitMap);
Parameter
pBitMap
Zeigen Sie auf eine BITMAP
Struktur, die die Bildeigenschaften empfängt. Dieser Parameter darf nicht NULL
sein.
Rückgabewert
Nicht 0, wenn die Methode erfolgreich ausgeführt wurde, andernfalls 0
Hinweise
CBitmap::GetBitmapBits
Kopiert das Bitmuster der angefügten Bitmap in den angegebenen Puffer.
DWORD GetBitmapBits(
DWORD dwCount,
LPVOID lpBits) const;
Parameter
dwCount
Die Anzahl von Bytes, die in den Puffer kopiert werden sollen.
lpBits
Zeigen Sie auf den Puffer, der die Bitmap empfängt.
Rückgabewert
Die Anzahl der Bytes, die in den Puffer kopiert wurden, wenn die Methode erfolgreich war; andernfalls 0.
Hinweise
Verwenden Sie diese Eigenschaft CBitmap::GetBitmap
, um die erforderliche Puffergröße zu ermitteln.
CBitmap::GetBitmapDimension
Gibt die Breite und Höhe der Bitmap zurück.
CSize GetBitmapDimension() const;
Rückgabewert
Die Breite und Höhe der Bitmap, gemessen in 0,1-Millimeter-Einheiten. Die Höhe befindet sich im cy
Element des CSize
Objekts, und die Breite befindet sich im cx
Element. Wenn die Bitmapbreite und -höhe nicht mithilfe SetBitmapDimension
von "0" festgelegt wurden, lautet der Rückgabewert 0.
Hinweise
Die Höhe und Breite werden angenommen, dass sie zuvor mithilfe der SetBitmapDimension
Memberfunktion festgelegt wurden.
CBitmap::LoadBitmap
Lädt die Bitmapressource, die durch lpszResourceName
die ID-Nummer in nIDResource
der ausführbaren Datei der Anwendung benannt oder identifiziert wird.
BOOL LoadBitmap(LPCTSTR lpszResourceName);
BOOL LoadBitmap(UINT nIDResource);
Parameter
lpszResourceName
Verweist auf eine mit Null beendete Zeichenfolge, die den Namen der Bitmapressource enthält.
nIDResource
Gibt die Ressourcen-ID-Nummer der Bitmapressource an.
Rückgabewert
Ungleich Null, wenn erfolgreich, andernfalls 0 (Null).
Hinweise
Die geladene Bitmap ist an das CBitmap
Objekt angefügt.
Wenn die durch lpszResourceName
sie identifizierte Bitmap nicht vorhanden ist oder nicht genügend Arbeitsspeicher zum Laden der Bitmap vorhanden ist, gibt die Funktion "0" zurück.
Sie können die CGdiObject::DeleteObject
Funktion verwenden, um die von der LoadBitmap
Funktion geladene Bitmap zu löschen, oder der CBitmap
Destruktor löscht das Objekt für Sie.
Achtung
Bevor Sie das Objekt löschen, stellen Sie sicher, dass es nicht in einem Gerätekontext ausgewählt ist.
Die folgenden Bitmaps wurden zu Windows-Versionen 3.1 und höher hinzugefügt:
OBM_UPARRROWIOBM_DNARROWIOBM_RGARROWIOBM_LFARROWI
Diese Bitmaps werden in Gerätetreibern für Windows-Versionen 3.0 und früher nicht gefunden. Eine vollständige Liste der Bitmaps und eine Anzeige ihrer Darstellung finden Sie im Windows SDK.
CBitmap::LoadMappedBitmap
Rufen Sie diese Memberfunktion auf, um eine Bitmap zu laden und die Farben den aktuellen Systemfarben zuzuordnen.
BOOL LoadMappedBitmap(
UINT nIDBitmap,
UINT nFlags = 0,
LPCOLORMAP lpColorMap = NULL,
int nMapSize = 0);
Parameter
nIDBitmap
Die ID der Bitmapressource.
nFlags
Eine Kennzeichnung für eine Bitmap. Kann null oder CMB_MASKED
.
lpColorMap
Ein Zeiger auf eine COLORMAP
Struktur, die die Farbinformationen enthält, die zum Zuordnen der Bitmaps erforderlich sind. Wenn dieser Parameter lautet NULL
, verwendet die Funktion die Standardfarbzuordnung.
nMapSize
Die Anzahl der Farbzuordnungen, auf die verwiesen wird.lpColorMap
Rückgabewert
Ungleich Null, wenn erfolgreich, andernfalls 0 (Null).
Hinweise
Standardmäßig werden Farben zugeordnet, LoadMappedBitmap
die häufig in Schaltflächenglyphen verwendet werden.
Informationen zum Erstellen einer zugeordneten Bitmap finden Sie in der Windows-Funktion CreateMappedBitmap
und der COLORMAP
Struktur im Windows SDK.
CBitmap::LoadOEMBitmap
Lädt eine vordefinierte Bitmap, die von Windows verwendet wird.
BOOL LoadOEMBitmap(UINT nIDBitmap);
Parameter
nIDBitmap
ID-Nummer der vordefinierten Windows-Bitmap. Die möglichen Werte sind unten aufgeführt von WINDOWS.H
:
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
Rückgabewert
Ungleich Null, wenn erfolgreich, andernfalls 0 (Null).
Hinweise
Bitmapnamen, die mit OBM_OLD
Bitmaps beginnen, die von Windows-Versionen vor 3.0 verwendet werden.
Beachten Sie, dass die Konstante OEMRESOURCE
definiert werden muss, bevor sie eingeschlossen WINDOWS.H
werden muss, um eine der OBM_
Konstanten zu verwenden.
CBitmap::operator HBITMAP
Verwenden Sie diesen Operator, um das angefügte Windows GDI-Handle des CBitmap
Objekts abzurufen.
operator HBITMAP() const;
Rückgabewert
Bei erfolgreicher Ausführung ein Handle für das Windows GDI-Objekt, das durch das CBitmap
Objekt dargestellt wird; andernfalls NULL
.
Hinweise
Dieser Operator ist ein Umwandlungsoperator, der die direkte Verwendung eines HBITMAP
Objekts unterstützt.
Weitere Informationen zur Verwendung von Grafikobjekten finden Sie unter "Grafikobjekte " im Windows SDK.
CBitmap::SetBitmapBits
Legt die Bits einer Bitmap auf die Bitwerte fest, die von lpBits
.
DWORD SetBitmapBits(
DWORD dwCount,
const void* lpBits);
Parameter
dwCount
Gibt die Anzahl der Byte an, auf die verwiesen wird lpBits
.
lpBits
Verweist auf das BYTE
Array, das die Pixelwerte enthält, die in das CBitmap
Objekt kopiert werden sollen. Damit die Bitmap das Bild korrekt rendern kann, sollten die Werte so formatiert werden, dass sie den Beim Erstellen der CBitmap
Instanz angegebenen Höhen-, Breiten- und Farbtiefewerten entsprechen. Weitere Informationen finden Sie unter CBitmap::CreateBitmap
.
Rückgabewert
Die Anzahl der Bytes, die beim Festlegen der Bitmapbits verwendet werden; 0, wenn die Funktion fehlschlägt.
CBitmap::SetBitmapDimension
Weist einer Bitmap in 0,1-Millimeter-Einheiten eine Breite und Höhe zu.
CSize SetBitmapDimension(
int nWidth,
int nHeight);
Parameter
nWidth
Gibt die Breite der Bitmap an (in 0,1-Millimeter-Einheiten).
nHeight
Gibt die Höhe der Bitmap an (in 0,1-Millimeter-Einheiten).
Rückgabewert
Die vorherigen Bitmapabmessungen. Die Höhe befindet sich in der cy
Membervariable des CSize
Objekts, und die Breite befindet sich in der cx
Membervariable.
Hinweise
Die GDI verwendet diese Werte nicht, außer sie zurückzugeben, wenn eine Anwendung die GetBitmapDimension
Memberfunktion aufruft.