CDC::BitBlt
更新 : 2007 年 11 月
コピー元のデバイス コンテキストから現在のデバイス コンテキストにビットマップをコピーします。
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