StretchBlt 関数 (wingdi.h)

StretchBlt 関数は、コピー元の四角形からコピー先の四角形にビットマップをコピーし、必要に応じて、コピー先の四角形の寸法に合わせてビットマップを拡大または圧縮します。 システムは、ターゲット デバイス コンテキストで現在設定されているストレッチ モードに従って、ビットマップをストレッチまたは圧縮します。

構文

BOOL StretchBlt(
  [in] HDC   hdcDest,
  [in] int   xDest,
  [in] int   yDest,
  [in] int   wDest,
  [in] int   hDest,
  [in] HDC   hdcSrc,
  [in] int   xSrc,
  [in] int   ySrc,
  [in] int   wSrc,
  [in] int   hSrc,
  [in] DWORD rop
);

パラメーター

[in] hdcDest

ターゲット デバイス コンテキストのハンドル。

[in] xDest

コピー先の四角形の左上隅の x 座標を論理単位で指定します。

[in] yDest

コピー先の四角形の左上隅の y 座標を論理単位で指定します。

[in] wDest

ターゲットの四角形の幅 (論理単位)。

[in] hDest

ターゲットの四角形の高さ (論理単位)。

[in] hdcSrc

ソース デバイス コンテキストへのハンドル。

[in] xSrc

ソース四角形の左上隅の x 座標 (論理単位)。

[in] ySrc

ソース四角形の左上隅の y 座標 (論理単位)。

[in] wSrc

ソースの四角形の幅 (論理単位)。

[in] hSrc

ソースの四角形の高さ (論理単位)。

[in] rop

実行するラスター操作。 ラスター演算コードは、ブラシ、ソース ビットマップ、およびコピー先ビットマップを含む出力操作でシステムが色を結合する方法を定義します。

一般的なラスター演算コード (ROP) の一覧については、「 BitBlt 」を参照してください。 通常、CAPTUREBLT ROP はデバイス コンテキストの印刷には使用できないことに注意してください。

戻り値

関数が成功すると、戻り値は 0 以外になります。

関数が失敗した場合は、0 を返します。

注釈

StretchBlt は、メモリ内のソース ビットマップをストレッチまたは圧縮し、結果をコピー先の四角形にコピーします。 このビットマップには、互換性のあるビットマップ (DDB) または CreateDIBSection からの出力のいずれかを指定できます。 パターンピクセルまたはターゲットピクセルのカラーデータは、ストレッチまたは圧縮が行われる後にマージされます。

拡張メタファイルが記録されている場合、ソース デバイス コンテキストが拡張メタファイル デバイス コンテキストを識別すると、エラーが発生 (および関数は FALSE を返します)。

指定したラスター操作でブラシが必要な場合、システムは現在選択されているブラシをターゲット デバイス コンテキストに使用します。

変換先の座標は、ターゲット デバイス コンテキストに対して現在指定されている変換を使用して変換されます。ソース座標は、ソース デバイス コンテキストに対して現在指定されている変換を使用して変換されます。

ソース変換に回転またはせん断がある場合は、エラーが発生します。

変換先ビットマップ、ソース ビットマップ、およびパターン ビットマップの色形式が同じでない場合、 StretchBlt は変換元ビットマップとパターン ビットマップを変換先ビットマップと一致させます。

StretchBlt でモノクロ ビットマップをカラー ビットマップに変換する必要がある場合は、白ビット (1) を背景色に、黒ビット (0) を前景色に設定します。 カラー ビットマップをモノクロ ビットマップに変換するには、背景色に一致するピクセルを白 (1) に設定し、他のすべてのピクセルを黒 (0) に設定します。 カラーのデバイス コンテキストの前景色と背景色は使用されます。

StretchBlt は、nWidthSrc パラメーターと nWidthDest パラメーターの符号が異なる場合、または nHeightSrc パラメーターと nHeightDest パラメーターが異なる場合に、ビットマップのミラーイメージを作成します。 nWidthSrcnWidthDest の符号が異なる場合、関数は x 軸に沿ってビットマップのミラーイメージを作成します。 nHeightSrcnHeightDest の符号が異なる場合、関数は y 軸に沿ってビットマップのミラーイメージを作成します。

すべてのデバイスで StretchBlt 関数がサポートされているわけではありません。 詳細については、「 GetDeviceCaps」を参照してください。

Icm: blit 操作が発生しても、カラー管理は実行されません。

複数のモニター システムで使用する場合、 hdcSrchdcDest の両方が同じデバイスを参照する必要があります。または、関数は失敗します。 異なるデバイスの DC 間でデータを転送するには、 GetDIBits を呼び出してメモリ ビットマップを DIB に変換します。 2 番目のデバイスに DIB を表示するには、 SetDIBits または StretchDIBits を呼び出します。

例については、「イメージの スケーリング」を参照してください。

要件

要件
サポートされている最小のクライアント Windows 2000 Professional [デスクトップ アプリのみ]
サポートされている最小のサーバー Windows 2000 Server [デスクトップ アプリのみ]
対象プラットフォーム Windows
ヘッダー wingdi.h (Windows.h を含む)
Library Gdi32.lib
[DLL] Gdi32.dll

こちらもご覧ください

Bitblt

ビットマップ関数

ビットマップの概要

CreateDIBSection

GetDIBits

GetDeviceCaps

MaskBlt

PlgBlt

SetDIBits

SetStretchBltMode

StretchDIBits