DIBのクラスを自作する。
これは、検索すれば、すぐサンプルは出てくる。
まずは、COLORREF対応のみ。
ビットマップハンドル HBITMAP から DIB を作成するのは、以下の関数。
---------------------------------------------------------------------------
DDB (CDC , CBitmap 等) → DIB (BYTE配列) 変換
GetDIBits() : 指定されたビットマップのビットを取得し、指定された形式でバッファにコピー
int GetDIBits(
HDC hdc , // デバイスコンテキストのハンドル
HBITMAP hbmp , // ビットマップのハンドル
UINT uStartScan , // 取得対象の最初の走査行
UINT cScanLines , // 取得対象の走査行の数
LPVOID lpvBits , // ビットマップのビットからなる配列
LPBITMAPINFO lpbi , // ビットマップデータのバッファ
UINT uUsage // RGB とパレットインデックスのどちらか
);
戻り値 : 関数が成功すると、コピーされた走査行の数が返ります。
----------------------------------------------------------------------------
BYTE 配列のサイズ計算とか、確保とか、メモリ破棄とか、それもあるんだけれど。
全部書いていると、ブログでは書ききれないし、参考にならない。
透過設定は、後で付け加える。最初から32ビットで作成すると、HBITMAPと連係できない。