Share via


CBitmap-klasse

Opmerking

De Microsoft Foundation Classes-bibliotheek (MFC) wordt nog steeds ondersteund. We voegen echter geen functies meer toe of werken de documentatie bij.

Inkapselt een GDI-bitmap (Windows Graphics Device Interface) in en biedt lidfuncties om de bitmap te bewerken.

Syntaxis

class CBitmap : public CGdiObject

Leden

Openbare constructors

Naam Description
CBitmap::CBitmap Maakt een CBitmap object.

Openbare methoden

Naam Description
CBitmap::CreateBitmap Initialiseert het object met een apparaatafhankelijke geheugen bitmap met een opgegeven breedte, hoogte en bitpatroon.
CBitmap::CreateBitmapIndirect Initialiseert het object met een bitmap met het patroon breedte, hoogte en bit (indien opgegeven) in een BITMAP structuur.
CBitmap::CreateCompatibleBitmap Initialiseert het object met een bitmap zodat het compatibel is met een opgegeven apparaat.
CBitmap::CreateDiscardableBitmap Initialiseert het object met een verwijderbare bitmap die compatibel is met een opgegeven apparaat.
CBitmap::FromHandle Retourneert een aanwijzer naar een CBitmap object wanneer een ingang aan een Windows-bitmap HBITMAP wordt gegeven.
CBitmap::GetBitmap Vult een BITMAP structuur met informatie over de bitmap.
CBitmap::GetBitmapBits Kopieert de bits van de opgegeven bitmap naar de opgegeven buffer.
CBitmap::GetBitmapDimension Retourneert de breedte en hoogte van de bitmap. De hoogte en breedte worden verondersteld eerder door de SetBitmapDimension lidfunctie in te stellen.
CBitmap::LoadBitmap Initialiseert het object door een benoemde bitmapresource te laden uit het uitvoerbare bestand van de toepassing en de bitmap toe te voegen aan het object.
CBitmap::LoadMappedBitmap Laadt een bitmap en wijst kleuren toe aan huidige systeemkleuren.
CBitmap::LoadOEMBitmap Initialiseert het object door een vooraf gedefinieerde Windows-bitmap te laden en de bitmap aan het object te koppelen.
CBitmap::SetBitmapBits Hiermee stelt u de bits van een bitmap in op de opgegeven bitwaarden.
CBitmap::SetBitmapDimension Wijst een breedte en hoogte toe aan een bitmap in eenheden van 0,1 millimeter.

Openbare operators

Naam Description
CBitmap::operator HBITMAP Retourneert de Windows-ingang die aan het CBitmap object is gekoppeld.

Opmerkingen

Als u een CBitmap object wilt gebruiken, maakt u het object, koppelt u er een bitmapgreep aan met een van de initialisatielidfuncties en roept u de lidfuncties van het object aan.

Zie Afbeeldingsobjecten voor meer informatie over het gebruik van grafische objecten zoalsCBitmap.

Overnamehiërarchie

CObject

CGdiObject

CBitmap

Requirements

Rubriek:afxwin.h

CBitmap::CBitmap

Maakt een CBitmap object.

CBitmap();

Opmerkingen

Het resulterende object moet worden geïnitialiseerd met een van de initialisatielidfuncties.

CBitmap::CreateBitmap

Initialiseert een apparaatafhankelijke geheugen bitmap met de opgegeven breedte, hoogte en bitpatroon.

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

Parameterwaarden

nWidth
Hiermee geeft u de breedte (in pixels) van de bitmap.

nHeight
Hiermee geeft u de hoogte (in pixels) van de bitmap.

nPlanes
Hiermee geeft u het aantal kleurvlakken in de bitmap.

nBitcount
Hiermee geeft u het aantal kleur bits per weergave pixel.

lpBits
Verwijst naar een matrix van bytes die de initiële bitmapbitwaarden bevat. Als dat het is NULL, wordt de nieuwe bitmap niet-geïnitialiseerd.

Retourwaarde

Niet-nul indien geslaagd; anders 0.

Opmerkingen

Voor een kleur bitmap moet de nPlanes of nBitcount parameter worden ingesteld op 1. Als beide parameters zijn ingesteld op 1, CreateBitmap maakt u een monochrome bitmap.

Hoewel een bitmap niet rechtstreeks kan worden geselecteerd voor een weergaveapparaat, kan deze worden geselecteerd als de huidige bitmap voor een 'context van het geheugenapparaat' door deze te gebruiken CDC::SelectObject en te kopiëren naar een compatibele apparaatcontext met behulp van de CDC::BitBlt functie.

Wanneer u klaar bent met het CBitmap object dat door de CreateBitmap functie is gemaakt, selecteert u eerst de bitmap uit de apparaatcontext en verwijdert u het CBitmap object.

Zie de beschrijving van het bmBits veld in de BITMAP structuur voor meer informatie. De BITMAP structuur wordt beschreven onder de CBitmap::CreateBitmapIndirect lidfunctie.

CBitmap::CreateBitmapIndirect

Initialiseert een bitmap met het breedte-, hoogte- en bitpatroon (indien opgegeven) in de structuur waarnaar wordt verwezen lpBitmap.

BOOL CreateBitmapIndirect(LPBITMAP lpBitmap);

Parameterwaarden

lpBitmap
Verwijst naar een BITMAP structuur die informatie over de bitmap bevat.

Retourwaarde

Niet-nul indien geslaagd; anders 0.

Opmerkingen

Hoewel een bitmap niet rechtstreeks kan worden geselecteerd voor een weergaveapparaat, kan deze worden geselecteerd als de huidige bitmap voor een context van een geheugenapparaat door deze te gebruiken CDC::SelectObject en te kopiëren naar een compatibele apparaatcontext met behulp van de CDC::BitBlt of CDC::StretchBlt functie. (De CDC::PatBlt functie kan de bitmap voor de huidige kwast rechtstreeks naar de weergaveapparaatcontext kopiëren.)

Als de BITMAP structuur lpBitmap naar de parameter is ingevuld met behulp van de GetObject functie, worden de bits van de bitmap niet opgegeven en wordt de bitmap niet geïnitialiseerd. Als u de bitmap wilt initialiseren, kan een toepassing een functie gebruiken, zoals CDC::BitBlt of SetDIBits om de bits te kopiëren van de bitmap die is geïdentificeerd door de eerste parameter van CGdiObject::GetObject de bitmap die door CreateBitmapIndirectde bitmap is gemaakt.

Wanneer u klaar bent met het CBitmap object dat met CreateBitmapIndirect de functie is gemaakt, selecteert u eerst de bitmap uit de apparaatcontext en verwijdert u het CBitmap object.

CBitmap::CreateCompatibleBitmap

Initialiseert een bitmap die compatibel is met het apparaat dat is opgegeven door pDC.

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

Parameterwaarden

pDC
Hiermee geeft u de apparaatcontext op.

nWidth
Hiermee geeft u de breedte (in pixels) van de bitmap.

nHeight
Hiermee geeft u de hoogte (in pixels) van de bitmap.

Retourwaarde

Niet-nul indien geslaagd; anders 0.

Opmerkingen

De bitmap heeft hetzelfde aantal kleurvlakken of dezelfde bits per pixel-indeling als de opgegeven apparaatcontext. Deze kan worden geselecteerd als de huidige bitmap voor elk geheugenapparaat dat compatibel is met het apparaat dat is opgegeven door pDC.

Als pDC dit een context van een geheugenapparaat is, heeft de geretourneerde bitmap dezelfde indeling als de geselecteerde bitmap in die apparaatcontext. Een context van het geheugenapparaat is een blok geheugen dat een weergaveoppervlak vertegenwoordigt. Het kan worden gebruikt om afbeeldingen in het geheugen voor te bereiden voordat ze naar het werkelijke weergaveoppervlak van het compatibele apparaat worden gekopieerd.

Wanneer een context van een geheugenapparaat wordt gemaakt, selecteert GDI automatisch een monochrome stock bitmap.

Omdat een context van een kleurengeheugenapparaat kleur- of monochrome bitmaps kan hebben geselecteerd, is de indeling van de bitmap die door de CreateCompatibleBitmap functie wordt geretourneerd, niet altijd hetzelfde. De indeling van een compatibele bitmap voor een niet-moryapparaatcontext heeft echter altijd de indeling van het apparaat.

Wanneer u klaar bent met het CBitmap object dat met de CreateCompatibleBitmap functie is gemaakt, selecteert u eerst de bitmap buiten de apparaatcontext en verwijdert u het CBitmap object.

CBitmap::CreateDiscardableBitmap

Initialiseert een verwijderbare bitmap die compatibel is met de apparaatcontext die wordt geïdentificeerd door pDC.

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

Parameterwaarden

pDC
Hiermee geeft u een apparaatcontext op.

nWidth
Hiermee geeft u de breedte (in bits) van de bitmap.

nHeight
Hiermee geeft u de hoogte (in bits) van de bitmap.

Retourwaarde

Niet-nul indien geslaagd; anders 0.

Opmerkingen

De bitmap heeft hetzelfde aantal kleurvlakken of dezelfde bits per pixel-indeling als de opgegeven apparaatcontext. Een toepassing kan deze bitmap selecteren als de huidige bitmap voor een geheugenapparaat dat compatibel is met de bitmap die is opgegeven door pDC.

Windows kan een bitmap die door deze functie is gemaakt, alleen negeren als een toepassing deze niet heeft geselecteerd in een weergavecontext. Als Windows de bitmap negeert wanneer deze niet is geselecteerd en de toepassing deze later probeert te selecteren, retourneert de CDC::SelectObject functie NULL.

Wanneer u klaar bent met het CBitmap object dat met de CreateDiscardableBitmap functie is gemaakt, selecteert u eerst de bitmap buiten de apparaatcontext en verwijdert u het CBitmap object.

CBitmap::FromHandle

Retourneert een aanwijzer naar een CBitmap object wanneer een ingang wordt gegeven aan een Windows GDI-bitmap.

static CBitmap* PASCAL FromHandle(HBITMAP hBitmap);

Parameterwaarden

hBitmap
Hiermee geeft u een Windows GDI-bitmap.

Retourwaarde

Een aanwijzer naar een CBitmap object als dit lukt; anders NULL.

Opmerkingen

Als er CBitmap nog geen object aan de ingang is gekoppeld, wordt er een tijdelijk CBitmap object gemaakt en gekoppeld. Dit tijdelijke CBitmap object is alleen geldig tot de volgende keer dat de toepassing inactief is in de gebeurtenislus, waarna alle tijdelijke grafische objecten worden verwijderd. Een andere manier om dit te zeggen is dat het tijdelijke object alleen geldig is tijdens de verwerking van één vensterbericht.

CBitmap::GetBitmap

Hiermee worden afbeeldingseigenschappen opgehaald voor de gekoppelde bitmap.

int GetBitmap(BITMAP* pBitMap);

Parameterwaarden

pBitMap
Wijs een BITMAP structuur aan die de afbeeldingseigenschappen ontvangt. Deze parameter mag niet zijn NULL.

Retourwaarde

Niet-nul als de methode is geslaagd; anders 0.

Opmerkingen

CBitmap::GetBitmapBits

Kopieert het bitpatroon van de gekoppelde bitmap in de opgegeven buffer.

DWORD GetBitmapBits(
    DWORD dwCount,
    LPVOID lpBits) const;

Parameterwaarden

dwCount
Het aantal bytes dat moet worden gekopieerd naar de buffer.

lpBits
Wijs de buffer aan die de bitmap ontvangt.

Retourwaarde

Het aantal bytes dat naar de buffer is gekopieerd als de methode is geslaagd; anders 0.

Opmerkingen

Gebruik CBitmap::GetBitmap dit om de vereiste buffergrootte te bepalen.

CBitmap::GetBitmapDimension

Retourneert de breedte en hoogte van de bitmap.

CSize GetBitmapDimension() const;

Retourwaarde

De breedte en hoogte van de bitmap, gemeten in eenheden van 0,1 millimeter. De hoogte bevindt zich in het cy lid van het CSize object en de breedte bevindt zich in het cx lid. Als de bitmapbreedte en -hoogte niet zijn ingesteld met behulp van SetBitmapDimension, is de retourwaarde 0.

Opmerkingen

De hoogte en breedte worden ervan uitgegaan dat ze eerder zijn ingesteld met behulp van de SetBitmapDimension lidfunctie.

CBitmap::LoadBitmap

Laadt de bitmapresource met de naam lpszResourceName of geïdentificeerd door het id-nummer in nIDResource het uitvoerbare bestand van de toepassing.

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

Parameterwaarden

lpszResourceName
Verwijst naar een tekenreeks met null-beëindiging die de naam van de bitmapresource bevat.

nIDResource
Hiermee geeft u het resource-id-nummer van de bitmapresource op.

Retourwaarde

Niet-nul indien geslaagd; anders 0.

Opmerkingen

De geladen bitmap is gekoppeld aan het CBitmap object.

Als de bitmap die is geïdentificeerd lpszResourceName niet bestaat of als er onvoldoende geheugen is om de bitmap te laden, retourneert de functie 0.

U kunt de CGdiObject::DeleteObject functie gebruiken om bitmaps te verwijderen die door de LoadBitmap functie zijn geladen, of de CBitmap destructor verwijdert het object voor u.

Waarschuwing

Voordat u het object verwijdert, moet u ervoor zorgen dat het niet is geselecteerd in een apparaatcontext.

De volgende bitmaps zijn toegevoegd aan Windows-versies 3.1 en hoger:

OBM_UPARRROWIOBM_DNARROWIOBM_RGARROWIOBM_LFARROWI

Deze bitmaps zijn niet gevonden in apparaatstuurprogramma's voor Windows-versies 3.0 en eerder. Zie de Windows SDK voor een volledige lijst met bitmaps en een weergave van hun uiterlijk.

CBitmap::LoadMappedBitmap

Roep deze lidfunctie aan om een bitmap te laden en de kleuren toe te wijzen aan de huidige systeemkleuren.

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

Parameterwaarden

nIDBitmap
De id van de bitmapresource.

nFlags
Een vlag voor een bitmap. Kan nul of CMB_MASKED.

lpColorMap
Een aanwijzer naar een COLORMAP structuur die de kleurinformatie bevat die nodig is om de bitmaps toe te wijzen. Als deze parameter is NULL, gebruikt de functie de standaardkleurkaart.

nMapSize
Het aantal kleurenkaarten dat door lpColorMapwordt verwezen.

Retourwaarde

Niet-nul indien geslaagd; anders 0.

Opmerkingen

LoadMappedBitmap Standaard worden kleuren die vaak worden gebruikt in knop-glyphs toegewezen.

Zie de Windows-functie CreateMappedBitmap en de COLORMAP structuur in de Windows SDK voor informatie over het maken van een toegewezen bitmap.

CBitmap::LoadOEMBitmap

Hiermee wordt een vooraf gedefinieerde bitmap geladen die wordt gebruikt door Windows.

BOOL LoadOEMBitmap(UINT nIDBitmap);

Parameterwaarden

nIDBitmap
Id-nummer van de vooraf gedefinieerde Windows-bitmap. Hieronder vindt u de mogelijke waarden: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

Retourwaarde

Niet-nul indien geslaagd; anders 0.

Opmerkingen

Bitmapnamen die beginnen met OBM_OLD bitmaps die worden gebruikt door Windows-versies vóór 3.0.

Houd er rekening mee dat de constante OEMRESOURCE moet worden gedefinieerd voordat WINDOWS.H deze moet worden opgenomen om een van de OBM_ constanten te kunnen gebruiken.

CBitmap::operator HBITMAP

Gebruik deze operator om de gekoppelde Windows GDI-ingang van het CBitmap object op te halen.

operator HBITMAP() const;

Retourwaarde

Als dit lukt, wordt een ingang naar het Windows GDI-object vertegenwoordigd door het CBitmap object; anders NULL.

Opmerkingen

Deze operator is een cast-operator die direct gebruik van een HBITMAP object ondersteunt.

Zie Afbeeldingsobjecten in de Windows SDK voor meer informatie over het gebruik van grafische objecten.

CBitmap::SetBitmapBits

Hiermee stelt u de bits van een bitmap in op de bitwaarden die zijn opgegeven door lpBits.

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

Parameterwaarden

dwCount
Hiermee geeft u het aantal bytes dat wordt verwezen door lpBits.

lpBits
Verwijst naar de BYTE matrix die de pixelwaarden bevat die naar het CBitmap object moeten worden gekopieerd. Om ervoor te zorgen dat de bitmap de juiste weergave van de afbeelding kan weergeven, moeten de waarden worden opgemaakt om te voldoen aan de waarden voor hoogte, breedte en kleurdiepte die zijn opgegeven toen het CBitmap exemplaar werd gemaakt. Zie CBitmap::CreateBitmap voor meer informatie.

Retourwaarde

Het aantal bytes dat wordt gebruikt bij het instellen van de bitmap-bits; 0 als de functie mislukt.

CBitmap::SetBitmapDimension

Wijst een breedte en hoogte toe aan een bitmap in eenheden van 0,1 millimeter.

CSize SetBitmapDimension(
    int nWidth,
    int nHeight);

Parameterwaarden

nWidth
Hiermee geeft u de breedte van de bitmap (in eenheden van 0,1 millimeter).

nHeight
Hiermee geeft u de hoogte van de bitmap (in eenheden van 0,1 millimeter).

Retourwaarde

De vorige bitmapdimensies. Hoogte bevindt zich in de cy lidvariabele van het CSize object en de breedte bevindt zich in de cx lidvariabele.

Opmerkingen

De GDI gebruikt deze waarden niet, behalve om ze te retourneren wanneer een toepassing de GetBitmapDimension lidfunctie aanroept.

Zie ook

MFC-voorbeeld MDI
CGdiObject klasse
Hiërarchiegrafiek