<Return[C]><Top>

CreateDIBitmap

Declare Function Api_CreateDIBitmap& Lib "gdi32" Alias "CreateDIBitmap" (ByVal hDC&, lpInfoHeader As BITMAPINFOHEADER, ByVal dwUsage&, lpInitBits As Any, lpInitInfo As BITMAPINFO, ByVal wUsage&)

Declare Function CreateDIBitmap Lib "gdi32" Alias "CreateDIBitmap" (ByVal hdc As Long, lpInfoHeader As BITMAPINFOHEADER, ByVal dwUsage As Long, lpInitBits As Any, lpInitInfo As BITMAPINFO, ByVal wUsage As Long) As Long

デバイス独立ビットマップ(DIB)からデバイス依存ビットマップ(DDB)を作成します。オプションで、ビットマップ内のビットを設定することもできる。

パラメータ
hdc
    デバイスコンテキストのハンドルを指定する。このデバイスと互換性のあるビットマップが作成される。
lpbmih
    ビットマップ情報ヘッダー構造体へのポインタを指定する。次の表のいずれかを指定する。

    オペレーティングシステム               

ビットマップ情報ヘッダー

    Windows NT 3.51 以前

 

    Windows NT 4.0 と Windows 95

 

    Windows 2000 と Windows 98

 

    fdwInit パラメータに CBM_INIT を指定した場合、CreateDIBitmap 関数は、指定されたビットマップ情報ヘッダー構造体を使って、ビット

    マップの希望の幅と高さ、および他の情報を取得する。高さに正の値を指定するとボトムアップ(左下隅を原点とする)DIB、高さに負の値を

    指定するとトップダウン(左上隅を原点とする)DIB を意味する。fdwInit に CBM_INIT を指定して CreateDIBitmap を呼び出すと、

    CreateCompatibleBitmap を呼び出してデバイスの形式に従った DDB を作成し、次に SetDIBits を呼び出して DIB のビットを DDB へ変

    換することに相当する。
fdwInit
    ビットマップのビットを初期化する方法を指定する。次の値が定義されている。
 

    値                   

意味                                                                                                                                             

    CBM_INIT

CBM_INIT を指定した場合、lpbInit と lpbmi の各パラメータが指すデータを使って、ビットマップのビットを初期化する。
このフラグを指定しなかった場合、これらのパラメータが指すデータを使わない。
fdwInit が 0 の場合、システムはビットマップのビットを初期化しない。

lpbInit
    初期のビットマップデータを保持しているバイト配列へのポインタを指定する。データの形式は、lpbmi パラメータが指す 構造体の

    biBitCount メンバに依存する。
lpbmi
    lpbInit パラメータが指す配列の大きさと色形式を記述している、1 個の BITMAPINFO 構造体へのポインタを指定する。
fuUsage
    構造体の bmiColors メンバを設定したかどうかを指定する。設定した場合は、bmiColors が RGB の明示的な値とパレットインデックスのど

    ちらを保持しているかを指定する。fuUsage パラメータで、次の値のいずれかを指定する。

    値                             

意味                                                                                                                              

    DIB_PAL_COLORS

 

カラーテーブルを提供します。カラーテーブルは、ビットマップを選択するデバイスコンテキストの論理パレットに関係する 16 ビットのインデックスからなる 1 個の配列である。

    DIB_RGB_COLORS

カラーテーブルを提供する。カラーテーブルは、RGB 値そのものである。


戻り値
    関数が成功すると、ビットマップのハンドルが返る。
    関数が失敗すると、NULL が返る。
    Windows NT/2000:拡張エラー情報を取得するには、 関数を使う。

解説
    デバイスで最適なビットマップ描画速度を達成するには、fdwInit に CBM_INIT を指定する。次に、ビデオ(グラフィック)モードと同じ色深度

    の DIB を使う。ビデオが 4bpp または 8bpp(16 色または 256 色)で動作している場合、DIB_PAL_COLORS を使う。
    fdwInit パラメータの CBM_CREATDIB フラグは、現在はサポートされていない。
    ビットマップが不要になったら、DeleteObject 関数を呼び出して削除する。
    ICM:色の管理は実施されない。この関数の結果として得られるビットマップを作成した後、このビットマップに対してカラーマッチングを実施

    しない。
    Windows 95/98:作成できるビットマップのサイズは、最大 16MB である。