Share via


CDC::BitBlt

コピー元のデバイス コンテキストから現在のデバイス コンテキストにビットマップをコピーします。

BOOL BitBlt(
   int x,
   int y,
   int nWidth,
   int nHeight,
   CDC* pSrcDC,
   int xSrc,
   int ySrc,
   DWORD dwRop 
);

パラメーター

  • x
    転送先四角形の左上隅の論理 x 座標。

  • y
    転送先四角形の左上隅の論理 y 座標。

  • nWidth
    転送先四角形と転送元ビットマップの幅 (論理単位)。

  • nHeight
    転送先四角形と転送元ビットマップの高さ (論理単位)。

  • pSrcDC
    ビットマップをコピーするデバイス コンテキストを識別する CDC オブジェクトへのポインター。 パラメーター dwRop で、転送元を含まないラスター オペレーションを指定するときには、このパラメーターに NULL を指定します。

  • xSrc
    転送元ビットマップの左上隅の論理 x 座標を指定します。

  • ySrc
    転送元ビットマップの左上隅の論理 y 座標。

  • dwRop
    実行するラスター オペレーション。 ラスター オペレーション コードは、現在のブラシ、可能な転送元のビットマップ、転送先のビットマップが関係する出力操作において、GDI がどのようにそれぞれの色を組み合わせるかを定義します。 dwRop のラスター オペレーション コードとその説明の一覧については、Windows SDK の「BitBlt」を参照してください。

ラスター オペレーション コード全体の一覧については、Windows SDK の「About Raster Operation Codes」を参照してください。

戻り値

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

解説

BitBlt 操作をバイト境界の四角形で行えるように、アプリケーションでウィンドウやクライアント領域をバイト境界に揃えることができます。 ウィンドウ クラスを登録するときに、CS_BYTEALIGNWINDOW フラグまたは CS_BYTEALIGNCLIENT フラグを設定します。

バイト境界の四角形上での BitBlt 操作は、バイト境界になっていない四角形での BitBlt 操作に比べてはるかに高速に行えます。 固有のデバイス コンテキストでバイト境界のようなクラス スタイルを指定するときは、MFC に任せるのではなくウィンドウ クラスに登録する必要があります。 AfxRegisterWndClass グローバル関数を使ってください。

GDI は、転送先のデバイス コンテキストで 1 回、さらに転送元のデバイス コンテキストで 1 回、それぞれパラメーター nWidth とパラメーター nHeight を変換します。 変換後のサイズが合わないときには、GDI は Windows の StretchBlt 関数を使って、必要に応じて転送元のビットマップを拡大、縮小します。

転送先ビットマップ、転送元ビットマップおよびパターン ビットマップが同じカラー フォーマットを持っていないときは、BitBlt 関数は転送元のビットマップとパターン ビットマップを転送先ビットマップに合わせて変換します。 このときの変換には、転送先ビットマップの前景色と背景色が使われます。

BitBlt 関数がモノクロのビットマップをカラーに変換するときは、白のビット (1) を背景色に、黒のビット (0) を前景色に設定します。 転送先のデバイス コンテキストの前景色と背景色を使います。 カラーのビットマップをモノクロに変換するときは、BitBlt 関数は背景色に一致するピクセルを白に、それ以外のピクセルを黒に設定します。 BitBlt 関数はカラー デバイス コンテキストの前景色と背景色を使ってカラーからモノクロに変換します。

すべてのデバイス コンテキストが BitBlt 関数をサポートするわけではありません。 デバイス コンテキストが BitBlt 関数をサポートするかどうかを調べるには、RASTERCAPS インデックスを指定して GetDeviceCaps 関数を使ってください。

使用例

CDC::CreateCompatibleDC」の例を参照してください。

必要条件

**ヘッダー:**afxwin.h

参照

参照

CDC クラス

階層図

CDC::GetDeviceCaps

CDC::PatBlt

CDC::SetTextColor

CDC::StretchBlt

StretchDIBits

BitBlt

その他の技術情報

CDC のメンバー