Udostępnij za pośrednictwem


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

CObject

CGdiObject

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 CreateBitmapIndirectprogram .

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 pDCprogram .

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 pDCprogram .

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 .

Zobacz też

Przykładowe mdI MFC
CGdiObject Klasa
Wykres hierarchii