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
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 lpBitmap
odkazuje .
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 NULL
tento 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é lpBits
odkazuje .
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.