CreateBitmapIndirect 関数 (wingdi.h)

CreateBitmapIndirect 関数は、指定された幅、高さ、および色形式 (カラー プレーンとピクセルあたりのビット数) を持つビットマップを作成します。

構文

HBITMAP CreateBitmapIndirect(
  [in] const BITMAP *pbm
);

パラメーター

[in] pbm

ビットマップに関する情報を含む BITMAP 構造体へのポインター。 アプリケーションで bmWidth メンバーまたは bmHeight メンバーを 0 に設定した場合、 CreateBitmapIndirect はハンドルを 1 x 1 ピクセルのモノクロ ビットマップに返します。

戻り値

関数が成功した場合、戻り値はビットマップへのハンドルです。

関数が失敗した場合は、返される値は NULL です。

この関数は、次の値を返すことができます。

リターン コード 説明
ERROR_INVALID_PARAMETER
1 つ以上の入力パラメーターが無効です。
ERROR_NOT_ENOUGH_MEMORY
ビットマップが大きすぎるため、メモリを割り当てできません。

解説

CreateBitmapIndirect 関数は、デバイスに依存するビットマップを作成します。

ビットマップを作成した後、 SelectObject 関数を呼び出してデバイス コンテキストに選択できます。 ただし、ビットマップと DC の形式が同じ場合にのみ、ビットマップをデバイス コンテキストに選択できます。

CreateBitmapIndirect 関数を使用してカラー ビットマップを作成できますが、パフォーマンス上の理由から、アプリケーションでは CreateBitmapIndirect を使用してモノクロ ビットマップを作成し、CreateCompatibleBitmap を使用してカラー ビットマップを作成する必要があります。 CreateBitmapIndirect のカラー ビットマップがデバイス コンテキストに選択されるたびに、システムはビットマップが選択されているデバイス コンテキストの形式と一致していることを確認する必要があります。 CreateCompatibleBitmap はデバイス コンテキストを受け取るため、指定したデバイス コンテキストと同じ形式のビットマップを返します。 したがって、SelectObject の後続の呼び出しは、CreateBitmapIndirect から返されるカラー ビットマップよりも、CreateCompatibleBitmap からのカラー ビットマップの方が高速です。

ビットマップがモノクロの場合、0 は前景色を表し、1 つはターゲット デバイス コンテキストの背景色を表します。

ビットマップが不要になったら、 DeleteObject 関数を呼び出して削除します。

要件

   
サポートされている最小のクライアント Windows 2000 Professional [デスクトップ アプリのみ]
サポートされている最小のサーバー Windows 2000 Server [デスクトップ アプリのみ]
対象プラットフォーム Windows
ヘッダー wingdi.h (Windows.h を含む)
Library Gdi32.lib
[DLL] Gdi32.dll

関連項目

ビットマップ

Bitblt

ビットマップ関数

ビットマップの概要

CreateBitmap

CreateCompatibleBitmap

CreateDIBitmap

DeleteObject

Selectobject