BitBlt 関数 (wingdi.h)
BitBlt 関数は、指定したソース デバイス コンテキストからターゲット デバイス コンテキストへのピクセルの四角形に対応する色データのビット ブロック転送を実行します。
構文
BOOL BitBlt(
[in] HDC hdc,
[in] int x,
[in] int y,
[in] int cx,
[in] int cy,
[in] HDC hdcSrc,
[in] int x1,
[in] int y1,
[in] DWORD rop
);
パラメーター
[in] hdc
ターゲット デバイス コンテキストのハンドル。
[in] x
コピー先の四角形の左上隅の x 座標を論理単位で指定します。
[in] y
コピー先の四角形の左上隅の y 座標を論理単位で指定します。
[in] cx
ソース四角形と変換先の四角形の幅を論理単位で指定します。
[in] cy
ソースと変換先の四角形の高さを論理単位で指定します。
[in] hdcSrc
ソース デバイス コンテキストへのハンドル。
[in] x1
ソース四角形の左上隅の x 座標 (論理単位)。
[in] y1
ソース四角形の左上隅の y 座標 (論理単位)。
[in] rop
ラスター演算コード。 これらのコードは、ソース四角形の色データを変換先の四角形の色データと組み合わせて最終的な色を実現する方法を定義します。
次の一覧は、一般的なラスター演算コードを示しています。
戻り値
関数が成功すると、戻り値は 0 以外になります。
関数が失敗した場合は、0 を返します。 詳細なエラー情報を得るには、GetLastError を呼び出します。
解説
BitBlt は宛先 DC でのみクリッピングを行います。
ソース デバイス コンテキストで回転またはせん断変換が有効な場合、 BitBlt はエラーを返します。 ソース デバイス コンテキストに他の変換が存在する場合 (また、一致する変換がターゲット デバイス コンテキストで有効でない場合)、宛先デバイス コンテキストの四角形は、必要に応じてストレッチ、圧縮、または回転されます。
変換元とコピー先のデバイス コンテキストの色形式が一致しない場合、 BitBlt 関数は変換元の色形式を変換先の形式に合わせて変換します。
拡張メタファイルが記録されている場合、ソース デバイス コンテキストが拡張メタファイル デバイス コンテキストを識別するとエラーが発生します。
すべてのデバイスで BitBlt 関数がサポートされているわけではありません。 詳細については、 GetDeviceCaps 関数のRC_BITBLTラスター機能エントリと、 MaskBlt、 PlgBlt、 StretchBlt の各関数を参照してください。
BitBlt は、ソースと宛先のデバイス コンテキストが異なるデバイスを表す場合にエラーを返します。 異なるデバイスの DC 間でデータを転送するには、 GetDIBits を呼び出してメモリ ビットマップを DIB に変換します。 2 番目のデバイスに DIB を表示するには、 SetDIBits または StretchDIBits を呼び出します。
Icm: blit が発生しても、カラー管理は実行されません。
例
次のコード例では、 BitBlt の使用方法を示します。
if (!BitBlt(hdcMemDC,
0, 0,
rcClient.right - rcClient.left, rcClient.bottom - rcClient.top,
hdcWindow,
0, 0,
SRCCOPY))
{
MessageBox(hWnd, L"BitBlt has failed", L"Failed", MB_OK);
goto done;
}
この例をコンテキストで確認するには、「 イメージのキャプチャ」を参照してください。
要件
要件 | 値 |
---|---|
サポートされている最小のクライアント | Windows 2000 Professional [デスクトップ アプリのみ] |
サポートされている最小のサーバー | Windows 2000 Server [デスクトップ アプリのみ] |
対象プラットフォーム | Windows |
ヘッダー | wingdi.h (Windows.h を含む) |
Library | Gdi32.lib |
[DLL] | Gdi32.dll |