CBitmap クラス

Windows のグラフィック デバイス インターフェイス (GDI: Graphics Device Interface) のビットマップをカプセル化したもので、ビットマップを操作するためのメンバー関数を提供します。

構文

class CBitmap : public CGdiObject

メンバー

パブリック コンストラクター

名前 説明
CBitmap::CBitmap CBitmap オブジェクトを構築します。

パブリック メソッド

名前 説明
CBitmap::CreateBitmap 指定した幅、高さ、およびビット パターンを持つデバイス依存のメモリ ビットマップを使用してオブジェクトを初期化します。
CBitmap::CreateBitmapIndirect 構造体で指定された幅、高さ、ビット パターン (指定されている場合) を使用して、ビットマップを使用してオブジェクトを BITMAP 初期化します。
CBitmap::CreateCompatibleBitmap 指定したデバイスと互換性を持つように、ビットマップを使用してオブジェクトを初期化します。
CBitmap::CreateDiscardableBitmap 指定したデバイスと互換性のあるカード不可能なビットマップを使用してオブジェクトを初期化します。
CBitmap::FromHandle Windows HBITMAP ビットマップへのハンドルがCBitmap与えられた場合に、オブジェクトへのポインターを返します。
CBitmap::GetBitmap ビットマップに関する BITMAP 情報を構造体に入力します。
CBitmap::GetBitmapBits 指定したビットマップのビットを指定したバッファーにコピーします。
CBitmap::GetBitmapDimension ビットマップの幅と高さを返します。 高さと幅は、メンバー関数によって SetBitmapDimension 以前に設定されているものと見なされます。
CBitmap::LoadBitmap アプリケーションの実行可能ファイルから名前付きビットマップ リソースを読み込み、そのビットマップをオブジェクトにアタッチして、オブジェクトを初期化します。
CBitmap::LoadMappedBitmap ビットマップを読み込み、色を現在のシステムの色にマップします。
CBitmap::LoadOEMBitmap 定義済みの Windows ビットマップを読み込み、ビットマップをオブジェクトにアタッチして、オブジェクトを初期化します。
CBitmap::SetBitmapBits ビットマップのビットを指定したビット値に設定します。
CBitmap::SetBitmapDimension ビットマップに幅と高さを 0.1 mm 単位で割り当てます。

パブリック演算子

名前 説明
CBitmap::operator HBITMAP CBitmap オブジェクトにアタッチされている Windows ハンドルを返します。

解説

オブジェクトを CBitmap 使用するには、オブジェクトを構築し、初期化メンバー関数の 1 つでビットマップ ハンドルをアタッチしてから、オブジェクトのメンバー関数を呼び出します。

グラフィック CBitmapオブジェクトの使用方法の詳細については、「グラフィック オブジェクト」を参照してください

継承階層

CObject

CGdiObject

CBitmap

必要条件

ヘッダー:afxwin.h

CBitmap::CBitmap

CBitmap オブジェクトを構築します。

CBitmap();

解説

結果のオブジェクトは、初期化メンバー関数のいずれかで初期化する必要があります。

CBitmap::CreateBitmap

指定した幅、高さ、ビット パターンに設定されている、デバイス依存のメモリ ビットマップを初期化します。

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

パラメーター

nWidth
ビットマップの幅 (ピクセル単位) を指定します。

nHeight
ビットマップの高さ (ピクセル単位) を指定します。

nPlanes
ビットマップ内でのカラー プレーンの数を指定します。

nBitcount
表示ピクセルごとのカラー ビット数を指定します。

lpBits
初期のビットマップのビット値を含むバイト配列を指します。 その場合、 NULL新しいビットマップは初期化されていないままです。

戻り値

正常終了した場合は 0 以外を返します。それ以外の場合は 0 を返します。

解説

カラー ビットマップの場合、 nPlanes パラメーターまたは nBitcount パラメーターを 1 に設定する必要があります。 両方のパラメーターを 1 に設定すると、 CreateBitmap によってモノクロのビットマップが作成されます。

ビットマップは、ディスプレイ デバイスに対して直接選択することはできませんが、"メモリ デバイス コンテキスト" の現在のビットマップとして選択するには、関数を使用CDC::SelectObjectCDC::BitBltして互換性のあるデバイス コンテキストにコピーします。

CBitmap 関数によって作成された CreateBitmap オブジェクトでの作業終了後、デバイス コンテキスト外のビットマップを最初に選択し、次に CBitmap オブジェクトを削除します。

詳細については、構造のフィールドの bmBits 説明を BITMAP 参照してください。 構造体は BITMAP メンバー関数の下で CBitmap::CreateBitmapIndirect 記述されます。

CBitmap::CreateBitmapIndirect

指定された構造体で指定された幅、高さ、ビット パターン (指定されている場合) を持つビットマップを lpBitmap初期化します。

BOOL CreateBitmapIndirect(LPBITMAP lpBitmap);

パラメーター

lpBitmap
ビットマップに BITMAP 関する情報を含む構造体を指します。

戻り値

正常終了した場合は 0 以外を返します。それ以外の場合は 0 を返します。

解説

ビットマップは、ディスプレイ デバイスに対して直接選択することはできませんが、使用してメモリ デバイス コンテキストの現在のビットマップとして選択し、またはCDC::StretchBlt関数を使用CDC::SelectObjectCDC::BitBltして互換性のあるデバイス コンテキストにコピーできます。 (この関数は CDC::PatBlt 、現在のブラシのビットマップをディスプレイ デバイス コンテキストに直接コピーできます)。

パラメーターがBITMAPlpBitmap指す構造体が関数を使用してGetObject入力されている場合、ビットマップのビットは指定されず、ビットマップは初期化されません。 ビットマップを初期化するために、アプリケーションは、最初のパラメーターCGdiObject::GetObjectで識別されたビットマップから作成CreateBitmapIndirectされたビットマップにビットをコピーするなどのCDC::BitBltSetDIBits関数を使用できます。

関数を使用CreateBitmapIndirectして作成されたオブジェクトをCBitmap使用して終了したら、まずデバイス コンテキストからビットマップを選択してから、オブジェクトをCBitmap削除します。

CBitmap::CreateCompatibleBitmap

で指定された pDCデバイスと互換性のあるビットマップを初期化します。

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

パラメーター

pDC
デバイス コンテキストを指定します。

nWidth
ビットマップの幅 (ピクセル単位) を指定します。

nHeight
ビットマップの高さ (ピクセル単位) を指定します。

戻り値

正常終了した場合は 0 以外を返します。それ以外の場合は 0 を返します。

解説

ビットマップには、指定したデバイス コンテキストと同じ数のカラー プレーンまたはピクセル単位の同じビット形式があります。 指定されたメモリ デバイスと互換性のある任意のメモリ デバイスの現在の pDCビットマップとして選択できます。

メモリ デバイス コンテキストの場合 pDC 、返されるビットマップは、そのデバイス コンテキストで現在選択されているビットマップと同じ形式になります。 "メモリ デバイス コンテキスト" は、表示サーフェイスを表すメモリブロックです。 互換性のあるデバイスの実際の表示画面にコピーする前に、メモリ内のイメージを準備するために使用できます。

メモリ デバイス コンテキストが作成されると、GDI は自動的にモノクロストックビットマップを選択します。

カラー メモリ デバイス コンテキストではカラー ビットマップまたはモノクロ ビットマップを選択できるため、関数によって CreateCompatibleBitmap 返されるビットマップの形式は常に同じとは限りません。ただし、非メモリ デバイス コンテキストの互換性のあるビットマップの形式は、常にデバイスの形式になります。

関数を使用CreateCompatibleBitmapして作成されたオブジェクトをCBitmap使用して終了したら、まずデバイス コンテキストからビットマップを選択してから、オブジェクトをCBitmap削除します。

CBitmap::CreateDiscardableBitmap

で識別pDCされるデバイス コンテキストと互換性のあるカード可能なビットマップを初期化します。

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

パラメーター

pDC
デバイス コンテキストを指定します。

nWidth
ビットマップの幅 (ビット単位) を指定します。

nHeight
ビットマップの高さをビット単位で指定します。

戻り値

正常終了した場合は 0 以外を返します。それ以外の場合は 0 を返します。

解説

ビットマップには、指定したデバイス コンテキストと同じ数のカラー プレーンまたはピクセル単位の同じビット形式があります。 アプリケーションは、指定された pDCメモリ デバイスの現在のビットマップとしてこのビットマップを選択できます。

Windows はカードアプリケーションが表示コンテキストに選択していない場合にのみ、この関数によって作成されたビットマップを削除できます。 Windows が選択されていないときにカードビットマップを削除し、アプリケーションが後でそれを選択しようとすると、CDC::SelectObject関数は NULL を返します。

関数を使用CreateDiscardableBitmapして作成されたオブジェクトをCBitmap使用して終了したら、まずデバイス コンテキストからビットマップを選択してから、オブジェクトをCBitmap削除します。

CBitmap::FromHandle

Windows GDI ビットマップへのハンドルが CBitmap 与えられた場合に、オブジェクトへのポインターを返します。

static CBitmap* PASCAL FromHandle(HBITMAP hBitmap);

パラメーター

hBitmap
Windows GDI ビットマップを指定します。

戻り値

成功した場合は CBitmap オブジェクトへのポインター。それ以外の場合 NULL

解説

CBitmapオブジェクトがまだハンドルにアタッチされていない場合は、一時CBitmapオブジェクトが作成されてアタッチされます。 この一時 CBitmap オブジェクトは、アプリケーションがイベント ループで次にアイドル時間を過ぎ、その時点ですべての一時グラフィック オブジェクトが削除されるまで有効です。 もう 1 つの言い方は、一時オブジェクトが 1 つのウィンドウ メッセージの処理中にのみ有効であるという点です。

CBitmap::GetBitmap

添付ビットマップのイメージ プロパティを取得します。

int GetBitmap(BITMAP* pBitMap);

パラメーター

pBitMap
イメージのプロパティを BITMAP 受け取る構造体へのポインター。 このパラメーターは NULL にすることはできません。

戻り値

メソッドが成功した場合は 0 以外、それ以外の場合は 0。

解説

CBitmap::GetBitmapBits

アタッチされたビットマップのビット パターンを指定したバッファーにコピーします。

DWORD GetBitmapBits(
    DWORD dwCount,
    LPVOID lpBits) const;

パラメーター

dwCount
バッファーにコピーするバイト数。

lpBits
ビットマップを受け取るバッファーへのポインター。

戻り値

メソッドが成功した場合にバッファーにコピーされたバイト数。それ以外の場合は 0。

解説

必要なバッファー サイズを決定するために使用 CBitmap::GetBitmap します。

CBitmap::GetBitmapDimension

ビットマップの幅と高さを返します。

CSize GetBitmapDimension() const;

戻り値

ビットマップの幅と高さを 0.1 ミリメートル単位で測定します。 高さはオブジェクトのcyCSizeメンバーにあり、幅はメンバー内にありますcx。 ビットマップの幅と高さが使用 SetBitmapDimensionして設定されていない場合、戻り値は 0 です。

解説

高さと幅は、メンバー関数を使用 SetBitmapDimension して以前に設定されているものと見なされます。

CBitmap::LoadBitmap

アプリケーションの実行可能ファイルから、ID 番号nIDResourceによってlpszResourceName名前付けまたは識別されたビットマップ リソースを読み込みます。

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

パラメーター

lpszResourceName
ビットマップ リソースの名前を含む null で終わる文字列を指します。

nIDResource
ビットマップ リソースのリソース ID 番号を指定します。

戻り値

正常終了した場合は 0 以外を返します。それ以外の場合は 0 を返します。

解説

読み込まれたビットマップがオブジェクトに CBitmap アタッチされます。

指定された lpszResourceName ビットマップが存在しない場合、またはビットマップを読み込むためのメモリが不足している場合、関数は 0 を返します。

関数を CGdiObject::DeleteObject 使用して、関数によって読み込まれたビットマップを LoadBitmap 削除できます。または CBitmap 、デストラクターによってオブジェクトが削除されます。

注意事項

オブジェクトを削除する前に、デバイス コンテキストで選択されていないことを確認します。

次のビットマップが Windows バージョン 3.1 以降に追加されました。

OBM_UPARRROWIOBM_DNARROWIOBM_RGARROWIOBM_LFARROWI

これらのビットマップは、Windows バージョン 3.0 以前のデバイス ドライバーでは見つかりません。 ビットマップの完全な一覧とその外観については、Windows SDK を参照してください。

CBitmap::LoadMappedBitmap

ビットマップを読み込み、色を現在のシステムの色にマップするには、このメンバー関数を呼び出します。

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

パラメーター

nIDBitmap
ビットマップ リソースの ID。

nFlags
ビットマップのフラグ。 0 または CMB_MASKED.

lpColorMap
ビットマップを COLORMAP マップするために必要な色情報を含む構造体へのポインター。 このパラメーターの場合、関数は NULL既定のカラー マップを使用します。

nMapSize
によって指 lpColorMapされるカラー マップの数。

戻り値

正常終了した場合は 0 以外を返します。それ以外の場合は 0 を返します。

解説

既定では、 LoadMappedBitmap ボタン グリフでよく使用される色がマップされます。

マップされたビットマップの作成の詳細については、Windows SDK の Windows 関数 CreateMappedBitmapCOLORMAP 構造を参照してください。

CBitmap::LoadOEMBitmap

Windows で使用される定義済みのビットマップを読み込みます。

BOOL LoadOEMBitmap(UINT nIDBitmap);

パラメーター

nIDBitmap
定義済みの Windows ビットマップの ID 番号。 指定できる値は次のとおりです WINDOWS.H

OBM_BTNCORNERS
OBM_BTSIZE
OBM_CHECK
OBM_CHECKB (キロバイト)OXES
OBM_CLOStandard Edition
OBM_COMB (メガバイト)O
OBM_DNARROW
OBM_DNARROWD
OBM_DNARROWI
OBM_LFARROW
OBM_LFARROWD
OBM_LFARROWI

OBM_MNARROW
OBM_OLD_CLOStandard Edition
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

戻り値

正常終了した場合は 0 以外を返します。それ以外の場合は 0 を返します。

解説

先頭のビットマップ名は、 OBM_OLD 3.0 より前のバージョンの Windows で使用されるビットマップを表します。

定数 OEMRESOURCE を使用するには、定数を含める WINDOWS.H 前に定義する OBM_ 必要があることに注意してください。

CBitmap::operator HBITMAP

CBitmap オブジェクトのアタッチされた Windows GDI ハンドルを取得するには、この演算子を使用します。

operator HBITMAP() const;

戻り値

成功した場合は、オブジェクトによって CBitmap 表される Windows GDI オブジェクトへのハンドル。それ以外の場合 NULLは .

解説

この演算子は、HBITMAP オブジェクトの直接使用をサポートするキャスト演算子です。

グラフィック オブジェクトの使用の詳細については、「Windows SDK のグラフィック オブジェクト」を参照してください

CBitmap::SetBitmapBits

ビットマップのビットを指定したビット値 lpBitsに設定します。

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

パラメーター

dwCount
によって lpBits指されるバイト数を指定します。

lpBits
オブジェクトに BYTE コピーするピクセル値を含む配列を CBitmap 指します。 ビットマップがイメージを正しくレンダリングできるようにするには、インスタンスの作成時に指定された高さ、幅、色深度の値に準拠するように値を書式設定する CBitmap 必要があります。 詳細については、CBitmap::CreateBitmapを参照してください。

戻り値

ビットマップ ビットの設定に使用されるバイト数。関数が失敗した場合は 0。

CBitmap::SetBitmapDimension

ビットマップに幅と高さを 0.1 mm 単位で割り当てます。

CSize SetBitmapDimension(
    int nWidth,
    int nHeight);

パラメーター

nWidth
ビットマップの幅を指定します (0.1 ミリメートル単位)。

nHeight
ビットマップの高さを指定します (0.1 ミリメートル単位)。

戻り値

前のビットマップの寸法。 Height はオブジェクトの cy メンバー変数内 CSize にあり、width はメンバー変数内 cx にあります。

解説

GDI は、アプリケーションがメンバー関数を呼び出すときに返す以外は、これらの値を GetBitmapDimension 使用しません。

関連項目

MFC サンプル MDI
CGdiObject クラス
階層図