Freigeben über


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 CBitmapz. B. Grafikobjekten finden Sie unter "Grafikobjekte".

Vererbungshierarchie

CObject

CGdiObject

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 lpBitmapdie 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 pDCihnen 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 pDCkompatibel 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 pDCkompatibel 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 SetBitmapDimensionvon "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.

Siehe auch

MFC-Beispiel-MDI
CGdiObject Klasse
Hierarchiediagramm