CBitmap クラス

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

構文

class CBitmap : public CGdiObject

メンバー

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

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

パブリック メソッド

名前 説明
CBitmap::CreateBitmap 指定した幅、高さ、およびビット パターンを持つデバイス依存メモリ ビットマップを使用して、 オブジェクトを初期化します。
CBitmap::CreateBitmapIndirect 構造体で指定された幅、高さ、ビット パターン (指定されている場合) を使用して、ビットマップを使用して オブジェクトを初期化 BITMAP します。
CBitmap::CreateCompatibleBitmap 指定したデバイスと互換性を持つオブジェクトをビットマップで初期化します。
CBitmap::CreateDiscardableBitmap 指定したデバイスと互換性のある破棄可能なビットマップを使用して、 オブジェクトを初期化します。
CBitmap::FromHandle ビットマップに対するハンドルを指定CBitmapすると、 オブジェクトへのポインター WindowsHBITMAPします。
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 、 オブジェクトを構築し、初期化メンバー関数のいずれかを使用してビットマップ ハンドルをオブジェクトにアタッチしてから、オブジェクトのメンバー関数を呼び出します。

のようなグラフィック オブジェクトの使用の詳細については、「グラフィック 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::SelectObjectCDC::BitBltCDC::StretchBltビットマップは、ディスプレイ デバイスに対して直接選択することはできませんが、 を使用してメモリ デバイス コンテキストの現在のビットマップとして選択し、 関数または 関数を使用して互換性のあるデバイス コンテキストにコピーできます。 (関数 CDC::PatBlt は、現在のブラシのビットマップをディスプレイ デバイス コンテキストに直接コピーできます)。

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

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

CBitmap::CreateCompatibleBitmap

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

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

パラメーター

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

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

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

戻り値

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

解説

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

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

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

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

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

CBitmap::CreateDiscardableBitmap

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

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

パラメーター

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

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

nHeight
ビットマップの高さ (ビット) を指定します。

戻り値

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

解説

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

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

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

CBitmap::FromHandle

GDI ビットマップへのハンドルをCBitmap指定すると、 オブジェクトへのポインター Windows返します。

static CBitmap* PASCAL FromHandle(HBITMAP hBitmap);

パラメーター

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

戻り値

成功した場合は オブジェクト 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 mm 単位)。 高さは オブジェクトのメンバー cy 内で CSize 、幅はメンバー内 cx です。 ビットマップの幅と高さが を使用して設定されていない場合 SetBitmapDimension、戻り値は 0 です。

解説

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

CBitmap::LoadBitmap

アプリケーションの実行可能ファイルから、 で指定された lpszResourceName ビットマップ リソース、または ID nIDResource 番号で識別されるビットマップ リソースを読み込む。

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

パラメーター

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

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

戻り値

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

解説

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

で識別されたビットマップが lpszResourceName 存在しない場合、またはビットマップを読み込むのに十分なメモリが存在しない場合、関数は 0 を返します。

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

注意事項

オブジェクトを削除する前に、デバイス コンテキストで選択されていない必要があります。

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

OBM_UPARRROWIOBM_DNARROWIOBM_RGARROWIOBM_LFARROWI

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

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 CreateMappedBitmapCOLORMAP の関数と構造体に関するページWindowsしてください。

CBitmap::LoadOEMBitmap

オブジェクトで使用される定義済みのビットマップを読みWindows。

BOOL LoadOEMBitmap(UINT nIDBitmap);

パラメーター

nIDBitmap
定義済みのビットマップの ID Windows。 指定できる値は、 から次のとおりです 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

戻り値

正常終了した場合は 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
オブジェクトに CBitmap コピーされるピクセル値を格納している配列を BYTE 指します。 ビットマップがイメージを正しく表示できるようにするには、インスタンスの CBitmap 作成時に指定された高さ、幅、および色深度の値に合わせて値を書式設定する必要があります。 詳細については、「CBitmap::CreateBitmap」を参照してください。

戻り値

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

CBitmap::SetBitmapDimension

0.1-ミリメートル単位でビットマップに幅と高さを割り当てます。

CSize SetBitmapDimension(
    int nWidth,
    int nHeight);

パラメーター

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

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

戻り値

前のビットマップのサイズ。 高さは、オブジェクトの CSize メンバー変数に cy あり、width はメンバー変数に含ま cx れています。

解説

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

関連項目

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