次の方法で共有


CDC::StretchBlt

コピー元の四角形から、必要に応じてコピー先の四角形に合うようにビットマップを拡大または縮小してコピーします。

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
    コピー元の四角形の左上隅を示す Y 座標を (論理単位で) 指定します。

  • 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