次の方法で共有


CDC::StretchBlt

更新 : 2007 年 11 月

ビットマップを転送元四角形から転送先四角形にコピーします。このとき、必要に応じて、転送先四角形の寸法に合うように、ビットマップを拡大、縮小します。

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

パラメータ

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

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

  • nWidth
    転送先四角形の幅 (論理単位)。

  • nHeight
    転送先四角形の高さ (論理単位)。

  • pSrcDC
    転送元デバイス コンテキスト。

  • xSrc
    転送元四角形の左上隅の x 座標 (論理単位)。

  • ySrc
    転送元四角形の左上隅の x 座標 (論理単位)。

  • nSrcWidth
    転送元四角形の幅 (論理単位)。

  • nSrcHeight
    転送元四角形の高さ (論理単位)。

  • dwRop
    実行するラスタ オペレーション。ラスタ オペレーション コードは、GDI が、現在のブラシ、転送元のビットマップ、転送先のビットマップを組み合わせて出力操作の色を生成する方法を定義します。このパラメータには、次のいずれかの値を渡します。

    • BLACKNESS   すべての出力を黒にします。

    • DSTINVERT   転送先のビットマップを反転します。

    • MERGECOPY   パターン ビットマップと転送元ビットマップを論理 AND 演算子で結合します。

    • MERGEPAINT   反転した転送元ビットマップと転送先ビットマップを論理 OR 演算子で結合します。

    • NOTSRCCOPY   反転した転送元ビットマップを転送先ビットマップにコピーします。

    • NOTSRCERASE   転送元ビットマップと転送先ビットマップを論理 OR 演算子で結合した結果を反転します。

    • PATCOPY   パターン ビットマップを転送先ビットマップにコピーします。

    • PATINVERT   パターン ビットマップと転送先ビットマップを論理 XOR 演算子で結合します。

    • PATPAINT   反転した転送元ビットマップとパターン ビットマップを論理 OR 演算子で結合します。さらに、この操作で得た結果と転送先ビットマップを論理 OR 演算子で結合します。

    • SRCAND   転送先ビットマップと転送元ビットマップのピクセルを論理 AND 演算子で結合します。

    • SRCCOPY   転送元ビットマップを転送先ビットマップにコピーします。

    • SRCERASE   転送先ビットマップを反転し、その結果と転送元ビットマップを論理 AND 演算子で結合します。

    • SRCINVERT   転送先ビットマップと転送元ビットマップのピクセルを論理 XOR 演算子で結合します。

    • SRCPAINT   転送先ビットマップと転送元ビットマップのピクセルを論理 OR 演算子で結合します。

    • WHITENESS   すべての出力を白にします。

戻り値

ビットマップが描画された場合は 0 以外を返します。それ以外の場合は 0 を返します。

解説

関数は、転送先のデバイス コンテキストの伸縮モード (SetStretchBltMode 関数により設定します) を使って、どのようにビットマップを拡大、縮小するかを決定します。

StretchBlt 関数は、ビットマップを pSrcDC により指定される転送元デバイスから、呼び出されたメンバ関数を持つデバイス コンテキストのオブジェクトにより表される転送先デバイスに移動します。xSrc、ySrc、nSrcWidth、nSrcHeight は、転送元四角形の左上隅の座標と大きさを定義します。xy、nWidth、nHeight は、転送先四角形の左上隅の座標と大きさを指定します。dwRop で指定されるラスタ オペレーションは、転送元ビットマップと転送先デバイス上のビットを組み合わせる方法を定義します。

StretchBlt 関数は、nSrcWidth と nWidth または、nSrcHeight と nHeight の符号が異なるときには、ビットマップの鏡像を作ります。nSrcWidth と nWidth の符号が異なるときは、x 軸に対するビットマップの鏡像を作ります。nSrcHeight と nHeight の符号が異なるときは、y 軸に対するビットマップの鏡像を作ります。

StretchBlt 関数は、メモリ上で転送元ビットマップを拡大、縮小してから、その結果を転送先にコピーします。パターンがその結果にマージされるときは、拡大された転送元ビットマップが転送先にコピーされた後にマージされます。ブラシが使われるときは、転送先のデバイス コンテキストに選択されているブラシです。転送先の座標は、転送先のデバイス コンテキストに合わせて変換されます。転送元の座標は、転送元のデバイス コンテキストに合わせて変換されます。

転送先、転送元、パターン ビットマップが異なるカラー フォーマットを持つときは、StretchBlt 関数は、転送元およびパターン ビットマップを転送先のビットマップに合わせるように変換します。この変換には、転送先デバイス コンテキストの前景色と背景色が使われます。

StretchBlt 関数が、モノクロ ビットマップをカラー ビットマップに変換する必要があるときは、白のビット (1) を背景色に、黒のビット (0) を前景色に設定します。カラー ビットマップをモノクロ ビットマップに変換するには、背景色に合うピクセルを白 (1) に、その他のすべてのピクセルを黒 (0) に設定します。この変換には、色を持つデバイス コンテキストの前景色と背景色が使われます。

すべてのデバイスで StretchBlt 関数がサポートされているわけではありません。デバイスが StretchBlt 関数をサポートしているかどうかを知るには、RASTERCAPS インデックスを指定して GetDeviceCaps メンバ関数を呼び出し、RC_STRETCHBLT フラグの戻り値をチェックしてください。

必要条件

ヘッダー : afxwin.h

参照

参照

CDC クラス

階層図

CDC::BitBlt

CDC::GetDeviceCaps

CDC::SetStretchBltMode

StretchBlt

その他の技術情報

CDC のメンバ