Sdílet prostřednictvím


CBitmap Třída

Zapouzdřuje rastrový obrázek grafického zařízení (GDI) systému Windows a poskytuje členské funkce pro manipulaci s rastrovým obrázkem.

Syntaxe

class CBitmap : public CGdiObject

Členové

Veřejné konstruktory

Název Popis
CBitmap::CBitmap CBitmap Vytvoří objekt.

Veřejné metody

Název Popis
CBitmap::CreateBitmap Inicializuje objekt pomocí rastrového obrázku paměti závislého na zařízení, který má zadanou šířku, výšku a bitový vzor.
CBitmap::CreateBitmapIndirect Inicializuje objekt rastrovým obrázkem s šířkou, výškou a bitovým vzorem (pokud je zadaný) zadaným ve struktuře BITMAP .
CBitmap::CreateCompatibleBitmap Inicializuje objekt rastrovým obrázkem tak, aby byl kompatibilní se zadaným zařízením.
CBitmap::CreateDiscardableBitmap Inicializuje objekt s zahozeným rastrovým obrázkem, který je kompatibilní se zadaným zařízením.
CBitmap::FromHandle Vrátí ukazatel na CBitmap objekt při zadání úchytu na rastrový obrázek Systému Windows HBITMAP .
CBitmap::GetBitmap BITMAP Vyplní strukturu informacemi o bitmapě.
CBitmap::GetBitmapBits Zkopíruje bity zadaného rastrového obrázku do zadané vyrovnávací paměti.
CBitmap::GetBitmapDimension Vrátí šířku a výšku rastrového obrázku. Výška a šířka se předpokládá, že byla dříve nastavena členkou SetBitmapDimension funkcí.
CBitmap::LoadBitmap Inicializuje objekt načtením pojmenovaného rastrového prostředku ze spustitelného souboru aplikace a připojením rastrového obrázku k objektu.
CBitmap::LoadMappedBitmap Načte rastrové obrázky a mapuje barvy na aktuální systémové barvy.
CBitmap::LoadOEMBitmap Inicializuje objekt načtením předdefinovaného rastrového obrázku systému Windows a připojením rastrového obrázku k objektu.
CBitmap::SetBitmapBits Nastaví bity rastrového obrázku na zadané bitové hodnoty.
CBitmap::SetBitmapDimension Přiřadí bitmapu šířku a výšku v 0,1 milimetrových jednotkách.

Veřejné operátory

Název Popis
CBitmap::operator HBITMAP Vrátí popisovač Windows připojený k objektu CBitmap .

Poznámky

Chcete-li použít CBitmap objekt, vytvořte objekt, připojte k němu rastrový popisovač s jednou z inicializačních členských funkcí a potom volejte členské funkce objektu.

Další informace o používání grafických objektů, jako je CBitmap, naleznete v tématu Grafické objekty.

Hierarchie dědičnosti

CObject

CGdiObject

CBitmap

Požadavky

Záhlaví: afxwin.h

CBitmap::CBitmap

CBitmap Vytvoří objekt.

CBitmap();

Poznámky

Výsledný objekt musí být inicializován jednou z inicializačních členských funkcí.

CBitmap::CreateBitmap

Inicializuje rastr paměti závislý na zařízení, který má zadanou šířku, výšku a bitový vzor.

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

Parametry

nWidth
Určuje šířku rastrového obrázku (v pixelech).

nHeight
Určuje výšku rastrového obrázku (v pixelech).

nPlanes
Určuje počet barevných rovin rastrového obrázku.

nBitcount
Určuje počet barevných bitů na pixel zobrazení.

lpBits
Odkazuje na pole bajtů, které obsahuje počáteční bitové hodnoty rastrového obrázku. Pokud ano NULL, nový rastrový obrázek zůstane neinicializovaný.

Návratová hodnota

Nenulové, pokud je úspěšné; jinak 0.

Poznámky

U barevného rastrového obrázku nPlanes nBitcount by měl být parametr nastaven na hodnotu 1. Pokud jsou oba tyto parametry nastaveny na hodnotu 1, CreateBitmap vytvoří monochromatický rastrový obrázek.

I když rastrový obrázek nelze přímo vybrat pro zobrazovací zařízení, lze jej vybrat jako aktuální rastrový obrázek pro kontext "paměťového zařízení" pomocí CDC::SelectObject a zkopírování do libovolného kompatibilního CDC::BitBlt kontextu zařízení pomocí funkce.

Po dokončení s objektem CBitmap vytvořeným CreateBitmap funkcí nejprve vyberte rastrový obrázek z kontextu zařízení a pak objekt odstraňte CBitmap .

Další informace najdete v popisu bmBits pole ve struktuře BITMAP . Struktura BITMAP je popsána CBitmap::CreateBitmapIndirect v rámci členské funkce.

CBitmap::CreateBitmapIndirect

Inicializuje rastrový obrázek, který má šířku, výšku a bitový vzor (pokud je zadán) zadaný ve struktuře, na kterou lpBitmapodkazuje .

BOOL CreateBitmapIndirect(LPBITMAP lpBitmap);

Parametry

lpBitmap
Odkazuje na BITMAP strukturu, která obsahuje informace o rastrovém obrázku.

Návratová hodnota

Nenulové, pokud je úspěšné; jinak 0.

Poznámky

I když rastrový obrázek nelze přímo vybrat pro zobrazovací zařízení, lze jej vybrat jako aktuální rastrový obrázek kontextu paměťového zařízení pomocí CDC::SelectObject nebo funkce a zkopírovat ho do jakéhokoli kompatibilního CDC::BitBlt CDC::StretchBlt kontextu zařízení. (Funkce CDC::PatBlt může kopírovat rastrový obrázek aktuálního štětce přímo do kontextu zařízení pro zobrazení.)

BITMAP Pokud byla struktura odkazovaná parametrem lpBitmap vyplněna pomocí GetObject funkce, bity rastrového obrázku nejsou zadány a rastrový obrázek není inicializován. K inicializaci rastrového obrázku může aplikace použít funkci, například CDC::BitBlt nebo SetDIBits ke zkopírování bitů z rastrového obrázku identifikovaného prvním parametrem CGdiObject::GetObject rastrového obrázku vytvořeného CreateBitmapIndirect.

Po dokončení s objektem CBitmap vytvořeným pomocí CreateBitmapIndirect funkce nejprve vyberte rastrový obrázek z kontextu zařízení a pak objekt odstraňte CBitmap .

CBitmap::CreateCompatibleBitmap

Inicializuje rastrový obrázek, který je kompatibilní se zařízením určeným pDC.

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

Parametry

pDC
Určuje kontext zařízení.

nWidth
Určuje šířku rastrového obrázku (v pixelech).

nHeight
Určuje výšku rastrového obrázku (v pixelech).

Návratová hodnota

Nenulové, pokud je úspěšné; jinak 0.

Poznámky

Rastrový obrázek má stejný počet barevných rovin nebo stejný formát bitů na pixel jako zadaný kontext zařízení. Lze jej vybrat jako aktuální rastrový obrázek pro jakékoli paměťové zařízení, které je kompatibilní s obrázkem určeným pDC.

Pokud pDC je kontext paměťového zařízení, má vrácený rastrový obrázek stejný formát jako aktuálně vybraný rastr v kontextu zařízení. Kontext paměťového zařízení je blok paměti, který představuje plochu zobrazení. Dá se použít k přípravě obrázků v paměti před jejich zkopírováním na plochu skutečného displeje kompatibilního zařízení.

Když se vytvoří kontext paměťového zařízení, GDI pro něj automaticky vybere monochromatický burzovní rastrový obrázek.

Vzhledem k tomu, že kontext barevné paměti zařízení může mít vybranou barvu nebo monochromatické rastrové obrázky, formát rastrového obrázku vráceného CreateCompatibleBitmap funkcí není vždy stejný. Formát kompatibilního rastrového obrázku pro kontext jiného zařízení je vždy ve formátu zařízení.

Po dokončení s objektem CBitmap vytvořeným pomocí CreateCompatibleBitmap funkce nejprve vyberte rastrový obrázek z kontextu zařízení a pak objekt odstraňte CBitmap .

CBitmap::CreateDiscardableBitmap

Inicializuje zahoditelný rastr, který je kompatibilní s kontextem zařízení identifikovaný pDC.

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

Parametry

pDC
Určuje kontext zařízení.

nWidth
Určuje šířku rastrového obrázku (v bitech).

nHeight
Určuje výšku rastrového obrázku (v bitech).

Návratová hodnota

Nenulové, pokud je úspěšné; jinak 0.

Poznámky

Rastrový obrázek má stejný počet barevných rovin nebo stejný formát bitů na pixel jako zadaný kontext zařízení. Aplikace může vybrat tento rastrový obrázek jako aktuální rastr pro paměťové zařízení, které je kompatibilní s obrázkem určeným pDC.

Systém Windows může zahodit rastrový obrázek vytvořený touto funkcí pouze v případě, že aplikace nebyla vybrána do kontextu zobrazení. Pokud systém Windows rastrový obrázek zahodí, když není vybraný a aplikace se později pokusí ji vybrat, CDC::SelectObject vrátí funkce hodnotu NULL.

Po dokončení s objektem CBitmap vytvořeným pomocí CreateDiscardableBitmap funkce nejprve vyberte rastrový obrázek z kontextu zařízení a pak objekt odstraňte CBitmap .

CBitmap::FromHandle

Vrátí ukazatel na CBitmap objekt při zadání úchytu na rastrový obrázek GDI systému Windows.

static CBitmap* PASCAL FromHandle(HBITMAP hBitmap);

Parametry

hBitmap
Určuje rastrový obrázek GDI systému Windows.

Návratová hodnota

Ukazatel na CBitmap objekt, pokud je úspěšný; jinak NULL.

Poznámky

CBitmap Pokud objekt ještě není připojený k popisovači, vytvoří se dočasný CBitmap objekt a připojí se. Tento dočasný CBitmap objekt je platný pouze do okamžiku, kdy aplikace ve smyčce událostí nečiní, kdy se odstraní všechny dočasné grafické objekty. Dalším způsobem, jak to říct, je, že dočasný objekt je platný pouze během zpracování jedné zprávy okna.

CBitmap::GetBitmap

Načte vlastnosti obrázku pro připojený rastrový obrázek.

int GetBitmap(BITMAP* pBitMap);

Parametry

pBitMap
Ukazatel na BITMAP strukturu, která obdrží vlastnosti obrázku. Tento parametr nesmí být NULL.

Návratová hodnota

Nenulové, pokud byla metoda úspěšná; jinak 0.

Poznámky

CBitmap::GetBitmapBits

Zkopíruje bitový vzor připojeného rastrového obrázku do zadané vyrovnávací paměti.

DWORD GetBitmapBits(
    DWORD dwCount,
    LPVOID lpBits) const;

Parametry

dwCount
Počet bajtů, které se mají zkopírovat do vyrovnávací paměti.

lpBits
Ukazatel na vyrovnávací paměť, která obdrží rastrový obrázek.

Návratová hodnota

Počet bajtů zkopírovaných do vyrovnávací paměti, pokud byla metoda úspěšná; jinak 0.

Poznámky

Slouží CBitmap::GetBitmap k určení požadované velikosti vyrovnávací paměti.

CBitmap::GetBitmapDimension

Vrátí šířku a výšku rastrového obrázku.

CSize GetBitmapDimension() const;

Návratová hodnota

Šířka a výška rastrového obrázku měřená v 0,1 milimetrových jednotkách. Výška je ve cy členu objektu CSize a šířka je v členu cx . Pokud nebyla nastavena šířka a výška rastrového obrázku pomocí SetBitmapDimension, návratová hodnota je 0.

Poznámky

Výška a šířka se předpokládá, že byly dříve nastaveny pomocí SetBitmapDimension členské funkce.

CBitmap::LoadBitmap

Načte bitmapový prostředek pojmenovaný lpszResourceName nebo identifikovaný číslem ID ze nIDResource spustitelného souboru aplikace.

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

Parametry

lpszResourceName
Odkazuje na řetězec ukončený hodnotou null, který obsahuje název rastrového prostředku.

nIDResource
Určuje číslo ID zdroje rastrového obrázku.

Návratová hodnota

Nenulové, pokud je úspěšné; jinak 0.

Poznámky

Načtený rastrový obrázek je připojen k objektu CBitmap .

Pokud rastrový obrázek identifikovaný lpszResourceName pomocí obrázku neexistuje nebo pokud není dostatek paměti k načtení rastrového obrázku, vrátí funkce hodnotu 0.

Pomocí funkce můžete CGdiObject::DeleteObject odstranit rastrový obrázek načtený LoadBitmap funkcí, nebo CBitmap destruktor odstraní objekt za vás.

Upozornění

Před odstraněním objektu se ujistěte, že není vybraný v kontextu zařízení.

Do Windows verze 3.1 a novější byly přidány následující rastrové obrázky:

OBM_UPARRROWIOBM_DNARROWIOBM_RGARROWIOBM_LFARROWI

Tyto rastrové obrázky nejsou nalezeny v ovladačích zařízení pro Windows verze 3.0 a starší. Úplný seznam rastrových obrázků a zobrazení jejich vzhledu najdete v sadě Windows SDK.

CBitmap::LoadMappedBitmap

Voláním této členské funkce načtěte rastrový obrázek a namapujte barvy na aktuální systémové barvy.

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

Parametry

nIDBitmap
ID rastrového prostředku.

nFlags
Příznak rastrového obrázku. Může být nula nebo CMB_MASKED.

lpColorMap
Ukazatel na COLORMAP strukturu, která obsahuje informace o barvě potřebné k mapování rastrových obrázků. Pokud je NULLtento parametr, funkce použije výchozí mapování barev.

nMapSize
Početbarevnýchch lpColorMap

Návratová hodnota

Nenulové, pokud je úspěšné; jinak 0.

Poznámky

Ve výchozím nastavení LoadMappedBitmap se barvy mapují běžně používané v glyfech tlačítek.

Informace o vytvoření mapovaného rastrového obrázku naleznete ve funkci CreateMappedBitmap Windows a COLORMAP struktuře v sadě Windows SDK.

CBitmap::LoadOEMBitmap

Načte předdefinovaný rastrový obrázek používaný systémem Windows.

BOOL LoadOEMBitmap(UINT nIDBitmap);

Parametry

nIDBitmap
Číslo ID předdefinovaného rastrového obrázku systému Windows. Možné hodnoty jsou uvedeny níže z 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

Návratová hodnota

Nenulové, pokud je úspěšné; jinak 0.

Poznámky

Názvy rastrových obrázků, které začínají OBM_OLD reprezentací rastrových obrázků používaných verzemi systému Windows staršími než 3.0.

Nezapomeňte, že konstanta OEMRESOURCE musí být definována před zahrnutím WINDOWS.H , aby bylo možné použít některou OBM_ z konstant.

CBitmap::operator HBITMAP

Pomocí tohoto operátoru získáte připojený popisovač GDI windows objektu CBitmap .

operator HBITMAP() const;

Návratová hodnota

V případě úspěchu je popisovač objektu GDI systému Windows reprezentovaný objektem CBitmap ; jinak NULL.

Poznámky

Tento operátor je operátor přetypování, který podporuje přímé použití objektu HBITMAP .

Další informace o používání grafických objektů naleznete v tématu Grafické objekty v sadě Windows SDK.

CBitmap::SetBitmapBits

Nastaví bity rastrového obrázku na bitové hodnoty zadané hodnotou lpBits.

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

Parametry

dwCount
Určuje počet bajtů, na které lpBitsodkazuje .

lpBits
Odkazuje na BYTE pole obsahující hodnoty pixelů, které se mají zkopírovat do objektu CBitmap . Aby rastrový obrázek mohl správně vykreslit, měly by být hodnoty formátovány tak, aby odpovídaly výšce, šířce a hodnotám hloubky barev, které byly zadány při CBitmap vytvoření instance. Další informace najdete na webu CBitmap::CreateBitmap.

Návratová hodnota

Počet bajtů použitých při nastavení bitů rastrového obrázku; 0, pokud funkce selže.

CBitmap::SetBitmapDimension

Přiřadí bitmapu šířku a výšku v 0,1 milimetrových jednotkách.

CSize SetBitmapDimension(
    int nWidth,
    int nHeight);

Parametry

nWidth
Určuje šířku rastrového obrázku (v 0,1 milimetrových jednotkách).

nHeight
Určuje výšku rastrového obrázku (v 0,1 milimetrových jednotkách).

Návratová hodnota

Předchozí rozměry rastrového obrázku. Výška je v cy členské proměnné objektu CSize a šířka je v cx členské proměnné.

Poznámky

GDI tyto hodnoty nepoužívá, s výjimkou jejich vrácení při volání GetBitmapDimension členské funkce aplikace.

Viz také

MFC – ukázka MDI
CGdiObject Třída
Graf hierarchie