CBitmap
Klasa
Hermetyzuje mapę bitową interfejsu urządzenia graficznego systemu Windows (GDI) i udostępnia funkcje członkowskie do manipulowania mapą bitową.
Składnia
class CBitmap : public CGdiObject
Elementy członkowskie
Konstruktory publiczne
Nazwa/nazwisko | opis |
---|---|
CBitmap::CBitmap |
CBitmap Tworzy obiekt. |
Metody publiczne
Nazwa/nazwisko | opis |
---|---|
CBitmap::CreateBitmap |
Inicjuje obiekt mapą bitową pamięci zależną od urządzenia, która ma określony wzorzec szerokości, wysokości i bitu. |
CBitmap::CreateBitmapIndirect |
Inicjuje obiekt mapą bitową o szerokości, wysokości i wzorcu bitowym (jeśli został określony) w BITMAP strukturze. |
CBitmap::CreateCompatibleBitmap |
Inicjuje obiekt mapą bitową, aby był zgodny z określonym urządzeniem. |
CBitmap::CreateDiscardableBitmap |
Inicjuje obiekt z odrzuconą mapą bitową zgodną z określonym urządzeniem. |
CBitmap::FromHandle |
Zwraca wskaźnik do CBitmap obiektu w przypadku uchwytu do mapy bitowej systemu Windows HBITMAP . |
CBitmap::GetBitmap |
BITMAP Wypełnia strukturę informacjami o mapie bitowej. |
CBitmap::GetBitmapBits |
Kopiuje bity określonej mapy bitowej do określonego buforu. |
CBitmap::GetBitmapDimension |
Zwraca szerokość i wysokość mapy bitowej. Zakłada się, że wysokość i szerokość zostały wcześniej ustawione przez funkcję składową SetBitmapDimension . |
CBitmap::LoadBitmap |
Inicjuje obiekt, ładując nazwany zasób mapy bitowej z pliku wykonywalnego aplikacji i dołączając mapę bitową do obiektu. |
CBitmap::LoadMappedBitmap |
Ładuje mapę bitową i mapuje kolory na bieżące kolory systemowe. |
CBitmap::LoadOEMBitmap |
Inicjuje obiekt, ładując wstępnie zdefiniowaną mapę bitową systemu Windows i dołączając mapę bitową do obiektu. |
CBitmap::SetBitmapBits |
Ustawia bity mapy bitowej na określone wartości bitowe. |
CBitmap::SetBitmapDimension |
Przypisuje szerokość i wysokość do mapy bitowej w jednostkach 0,1 milimetra. |
Operatory publiczne
Nazwa/nazwisko | opis |
---|---|
CBitmap::operator HBITMAP |
Zwraca uchwyt systemu Windows dołączony do CBitmap obiektu. |
Uwagi
Aby użyć CBitmap
obiektu, skonstruuj obiekt, dołącz do niego uchwyt mapy bitowej z jedną z funkcji składowych inicjowania, a następnie wywołaj funkcje składowe obiektu.
Aby uzyskać więcej informacji na temat używania obiektów graficznych, takich jak CBitmap
, zobacz Obiekty graficzne.
Hierarchia dziedziczenia
CBitmap
Wymagania
Nagłówek: afxwin.h
CBitmap::CBitmap
CBitmap
Tworzy obiekt.
CBitmap();
Uwagi
Wynikowy obiekt musi zostać zainicjowany przy użyciu jednej z funkcji składowych inicjowania.
CBitmap::CreateBitmap
Inicjuje mapę bitową pamięci zależną od urządzenia, która ma określony wzorzec szerokości, wysokości i bitu.
BOOL CreateBitmap(
int nWidth,
int nHeight,
UINT nPlanes,
UINT nBitcount,
const void* lpBits);
Parametry
nWidth
Określa szerokość mapy bitowej (w pikselach).
nHeight
Określa wysokość (w pikselach) mapy bitowej.
nPlanes
Określa liczbę płaszczyzn kolorów w mapie bitowej.
nBitcount
Określa liczbę bitów kolorów na piksel wyświetlania.
lpBits
Wskazuje tablicę bajtów, która zawiera początkowe wartości bitów mapy bitowej. Jeśli tak jest NULL
, nowa mapa bitowa pozostanie niezainicjowana.
Wartość zwracana
Bezzerowe, jeśli się powiedzie; w przeciwnym razie 0.
Uwagi
W przypadku mapy bitowej nPlanes
koloru parametr or nBitcount
powinien być ustawiony na 1. Jeśli oba te parametry są ustawione na 1, CreateBitmap
tworzy monochromatyczną mapę bitową.
Chociaż mapa bitowa nie może być wybrana bezpośrednio dla urządzenia wyświetlania, można ją wybrać jako bieżącą mapę bitową dla "kontekstu urządzenia pamięci" przy użyciu funkcji CDC::SelectObject
i skopiować do dowolnego zgodnego kontekstu CDC::BitBlt
urządzenia.
Po zakończeniu pracy z obiektem CBitmap
utworzonym CreateBitmap
przez funkcję najpierw wybierz mapę bitową z kontekstu urządzenia, a następnie usuń CBitmap
obiekt.
Aby uzyskać więcej informacji, zobacz opis bmBits
pola w BITMAP
strukturze. Struktura BITMAP
jest opisana w ramach funkcji składowej CBitmap::CreateBitmapIndirect
.
CBitmap::CreateBitmapIndirect
Inicjuje mapę bitową, która ma szerokość, wysokość i wzorzec bitowy (jeśli został określony) podany w strukturze wskazywanej przez lpBitmap
.
BOOL CreateBitmapIndirect(LPBITMAP lpBitmap);
Parametry
lpBitmap
Wskazuje strukturę zawierającą BITMAP
informacje o mapie bitowej.
Wartość zwracana
Bezzerowe, jeśli się powiedzie; w przeciwnym razie 0.
Uwagi
Chociaż mapa bitowa nie może być wybrana bezpośrednio dla urządzenia wyświetlania, można ją wybrać jako bieżącą mapę bitową kontekstu urządzenia pamięci przy użyciu CDC::SelectObject
funkcji lub CDC::StretchBlt
i skopiować do dowolnego zgodnego kontekstu CDC::BitBlt
urządzenia. (Funkcja CDC::PatBlt
może skopiować mapę bitową dla bieżącego pędzla bezpośrednio do kontekstu urządzenia wyświetlania).
BITMAP
Jeśli struktura wskazywana przez lpBitmap
parametr została wypełniona za pomocą GetObject
funkcji, bity mapy bitowej nie są określone, a mapa bitowa jest niezainicjowana. Aby zainicjować mapę bitową, aplikacja może użyć funkcji takiej jak CDC::BitBlt
lub SetDIBits
skopiować bity z mapy bitowej zidentyfikowanej przez pierwszy parametr CGdiObject::GetObject
mapy bitowej do mapy bitowej utworzonej przez CreateBitmapIndirect
program .
Po zakończeniu pracy z obiektem CBitmap
utworzonym za pomocą CreateBitmapIndirect
funkcji najpierw wybierz mapę bitową z kontekstu urządzenia, a następnie usuń CBitmap
obiekt.
CBitmap::CreateCompatibleBitmap
Inicjuje mapę bitową zgodną z urządzeniem określonym przez pDC
program .
BOOL CreateCompatibleBitmap(
CDC* pDC,
int nWidth,
int nHeight);
Parametry
pDC
Określa kontekst urządzenia.
nWidth
Określa szerokość mapy bitowej (w pikselach).
nHeight
Określa wysokość (w pikselach) mapy bitowej.
Wartość zwracana
Bezzerowe, jeśli się powiedzie; w przeciwnym razie 0.
Uwagi
Mapa bitowa ma taką samą liczbę płaszczyzn kolorów lub ten sam format bitów na piksel co określony kontekst urządzenia. Można go wybrać jako bieżącą mapę bitową dla dowolnego urządzenia pamięci zgodnego z określonym przez pDC
.
Jeśli pDC
jest kontekstem urządzenia pamięci, zwrócona mapa bitowa ma taki sam format jak aktualnie wybrana mapa bitowa w tym kontekście urządzenia. "Kontekst urządzenia pamięci" to blok pamięci, który reprezentuje powierzchnię wyświetlania. Można go użyć do przygotowania obrazów w pamięci przed skopiowaniem ich do rzeczywistej powierzchni wyświetlania zgodnego urządzenia.
Po utworzeniu kontekstu urządzenia pamięci interfejs GDI automatycznie wybiera dla niego mapę bitową z monochromatycznym magazynem.
Ponieważ kontekst urządzenia pamięci kolorów może mieć zaznaczony kolor lub monochromatyczne mapy bitowe, format mapy bitowej zwracanej przez CreateCompatibleBitmap
funkcję nie zawsze jest taki sam; jednak format zgodnej mapy bitowej dla kontekstu urządzenia niememory jest zawsze w formacie urządzenia.
Po zakończeniu pracy z obiektem CBitmap
utworzonym CreateCompatibleBitmap
za pomocą funkcji najpierw wybierz mapę bitową z kontekstu urządzenia, a następnie usuń CBitmap
obiekt.
CBitmap::CreateDiscardableBitmap
Inicjuje odrzucaną mapę bitową zgodną z kontekstem urządzenia zidentyfikowanym przez pDC
program .
BOOL CreateDiscardableBitmap(
CDC* pDC,
int nWidth,
int nHeight);
Parametry
pDC
Określa kontekst urządzenia.
nWidth
Określa szerokość (w bitach) mapy bitowej.
nHeight
Określa wysokość (w bitach) mapy bitowej.
Wartość zwracana
Bezzerowe, jeśli się powiedzie; w przeciwnym razie 0.
Uwagi
Mapa bitowa ma taką samą liczbę płaszczyzn kolorów lub ten sam format bitów na piksel co określony kontekst urządzenia. Aplikacja może wybrać tę mapę bitową jako bieżącą mapę bitową dla urządzenia pamięci zgodnego z tą określoną przez pDC
.
System Windows może odrzucić mapę bitową utworzoną przez tę funkcję tylko wtedy, gdy aplikacja nie wybrała jej do kontekstu wyświetlania. Jeśli system Windows odrzuci mapę bitową, gdy nie jest zaznaczona, a aplikacja później spróbuje ją wybrać, CDC::SelectObject
funkcja zwróci wartość NULL.
Po zakończeniu pracy z obiektem CBitmap
utworzonym CreateDiscardableBitmap
za pomocą funkcji najpierw wybierz mapę bitową z kontekstu urządzenia, a następnie usuń CBitmap
obiekt.
CBitmap::FromHandle
Zwraca wskaźnik do CBitmap
obiektu, gdy dana dojście do mapy bitowej GDI systemu Windows.
static CBitmap* PASCAL FromHandle(HBITMAP hBitmap);
Parametry
hBitmap
Określa mapę bitową GDI systemu Windows.
Wartość zwracana
Wskaźnik do CBitmap
obiektu, jeśli się powiedzie; w przeciwnym razie NULL
.
Uwagi
CBitmap
Jeśli obiekt nie jest jeszcze dołączony do uchwytu, zostanie utworzony i dołączony obiekt tymczasowyCBitmap
. Ten obiekt tymczasowy CBitmap
jest prawidłowy tylko do następnego czasu bezczynności aplikacji w pętli zdarzeń, w którym wszystkie tymczasowe obiekty graficzne są usuwane. Innym sposobem stwierdzenia jest to, że obiekt tymczasowy jest prawidłowy tylko podczas przetwarzania jednego komunikatu okna.
CBitmap::GetBitmap
Pobiera właściwości obrazu dla dołączonej mapy bitowej.
int GetBitmap(BITMAP* pBitMap);
Parametry
pBitMap
Wskaźnik do BITMAP
struktury, która będzie otrzymywać właściwości obrazu. Ten parametr nie może mieć wartości NULL
.
Wartość zwracana
Nonzero, jeśli metoda zakończyła się pomyślnie; w przeciwnym razie 0.
Uwagi
CBitmap::GetBitmapBits
Kopiuje wzorzec bitowy dołączonej mapy bitowej do określonego buforu.
DWORD GetBitmapBits(
DWORD dwCount,
LPVOID lpBits) const;
Parametry
dwCount
Liczba bajtów do skopiowania do buforu.
lpBits
Wskaźnik do buforu, który otrzyma mapę bitową.
Wartość zwracana
Liczba bajtów skopiowanych do buforu, jeśli metoda zakończyła się pomyślnie; w przeciwnym razie 0.
Uwagi
Użyj CBitmap::GetBitmap
polecenia , aby określić wymagany rozmiar buforu.
CBitmap::GetBitmapDimension
Zwraca szerokość i wysokość mapy bitowej.
CSize GetBitmapDimension() const;
Wartość zwracana
Szerokość i wysokość mapy bitowej mierzona w jednostkach 0,1 milimetra. Wysokość znajduje się w elemencie cy
członkowskim CSize
obiektu, a szerokość znajduje się w elemencie cx
członkowskim. Jeśli szerokość i wysokość mapy bitowej nie zostały ustawione przy użyciu metody SetBitmapDimension
, zwracana wartość to 0.
Uwagi
Zakłada się, że wysokość i szerokość zostały wcześniej ustawione przy użyciu funkcji składowej SetBitmapDimension
.
CBitmap::LoadBitmap
Ładuje zasób mapy bitowej o nazwie lpszResourceName
lub zidentyfikowany przez numer identyfikacyjny z nIDResource
pliku wykonywalnego aplikacji.
BOOL LoadBitmap(LPCTSTR lpszResourceName);
BOOL LoadBitmap(UINT nIDResource);
Parametry
lpszResourceName
Wskazuje ciąg o wartości null, który zawiera nazwę zasobu mapy bitowej.
nIDResource
Określa identyfikator zasobu mapy bitowej.
Wartość zwracana
Bezzerowe, jeśli się powiedzie; w przeciwnym razie 0.
Uwagi
Załadowana mapa bitowa jest dołączona do CBitmap
obiektu.
Jeśli mapa bitowa zidentyfikowana przez lpszResourceName
nie istnieje lub nie ma wystarczającej ilości pamięci do załadowania mapy bitowej, funkcja zwraca wartość 0.
Możesz użyć CGdiObject::DeleteObject
funkcji , aby usunąć mapę bitową załadowaną przez LoadBitmap
funkcję lub CBitmap
destruktor usunie obiekt.
Uwaga
Przed usunięciem obiektu upewnij się, że nie został wybrany w kontekście urządzenia.
Następujące mapy bitowe zostały dodane do systemu Windows w wersji 3.1 lub nowszej:
OBM_UPARRROWIOBM_DNARROWIOBM_RGARROWIOBM_LFARROWI
Te mapy bitowe nie znajdują się w sterownikach urządzeń dla systemu Windows w wersji 3.0 i starszych. Aby uzyskać pełną listę map bitowych i ich wygląd, zobacz zestaw Windows SDK.
CBitmap::LoadMappedBitmap
Wywołaj tę funkcję składową, aby załadować mapę bitową i zamapować kolory na bieżące kolory systemowe.
BOOL LoadMappedBitmap(
UINT nIDBitmap,
UINT nFlags = 0,
LPCOLORMAP lpColorMap = NULL,
int nMapSize = 0);
Parametry
nIDBitmap
Identyfikator zasobu mapy bitowej.
nFlags
Flaga mapy bitowej. Może mieć wartość zero lub CMB_MASKED
.
lpColorMap
Wskaźnik do struktury zawierającej COLORMAP
informacje o kolorach potrzebne do mapowania mapowania map bitów. Jeśli ten parametr to NULL
, funkcja używa domyślnej mapy kolorów.
nMapSize
Liczba map kolorów wskazywanych przez lpColorMap
.
Wartość zwracana
Bezzerowe, jeśli się powiedzie; w przeciwnym razie 0.
Uwagi
Domyślnie LoadMappedBitmap
kolory są mapowane najczęściej w glifach przycisków.
Aby uzyskać informacje na temat tworzenia mapowanej mapy bitowej, zobacz funkcję CreateMappedBitmap
systemu Windows i COLORMAP
strukturę w zestawie Windows SDK.
CBitmap::LoadOEMBitmap
Ładuje wstępnie zdefiniowaną mapę bitową używaną przez system Windows.
BOOL LoadOEMBitmap(UINT nIDBitmap);
Parametry
nIDBitmap
Identyfikator wstępnie zdefiniowanej mapy bitowej systemu Windows. Możliwe wartości są wymienione poniżej z pliku 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
Wartość zwracana
Bezzerowe, jeśli się powiedzie; w przeciwnym razie 0.
Uwagi
Nazwy map bitowych rozpoczynające się od OBM_OLD
reprezentujące mapy bitowe używane przez wersje systemu Windows wcześniejsze niż 3.0.
Należy pamiętać, że stała OEMRESOURCE
musi być zdefiniowana przed dołączeniem WINDOWS.H
, aby można było używać dowolnych OBM_
stałych.
CBitmap::operator HBITMAP
Użyj tego operatora, aby pobrać dołączony uchwyt GDI systemu CBitmap
Windows obiektu.
operator HBITMAP() const;
Wartość zwracana
W przypadku powodzenia dojście do obiektu GDI systemu Windows reprezentowanego CBitmap
przez obiekt ; w przeciwnym razie NULL
.
Uwagi
Ten operator jest operatorem rzutowania, który obsługuje bezpośrednie użycie HBITMAP
obiektu.
Aby uzyskać więcej informacji na temat używania obiektów graficznych, zobacz Obiekty graficzne w zestawie Windows SDK.
CBitmap::SetBitmapBits
Ustawia bity mapy bitowej na wartości bitowe podane przez lpBits
.
DWORD SetBitmapBits(
DWORD dwCount,
const void* lpBits);
Parametry
dwCount
Określa liczbę bajtów wskazywanych przez lpBits
.
lpBits
Wskazuje tablicę BYTE
zawierającą wartości pikseli, które mają zostać skopiowane do CBitmap
obiektu. Aby mapa bitowa mogła poprawnie renderować obraz, wartości powinny być sformatowane zgodnie z wartościami wysokości, szerokości i głębokości koloru, które zostały określone podczas CBitmap
tworzenia wystąpienia. Aby uzyskać więcej informacji, zobacz CBitmap::CreateBitmap
.
Wartość zwracana
Liczba bajtów używanych w ustawianiu bitów mapy bitowej; 0, jeśli funkcja zakończy się niepowodzeniem.
CBitmap::SetBitmapDimension
Przypisuje szerokość i wysokość do mapy bitowej w jednostkach 0,1 milimetra.
CSize SetBitmapDimension(
int nWidth,
int nHeight);
Parametry
nWidth
Określa szerokość mapy bitowej (w jednostkach 0,1 milimetra).
nHeight
Określa wysokość mapy bitowej (w jednostkach 0,1 milimetra).
Wartość zwracana
Poprzednie wymiary mapy bitowej. Wysokość znajduje się w zmiennej cy
CSize
składowej obiektu, a szerokość znajduje się w zmiennej składowej cx
.
Uwagi
GDI nie używa tych wartości z wyjątkiem zwracania ich, gdy aplikacja wywołuje funkcję składową GetBitmapDimension
.