次の方法で共有


PlgBlt 関数 (wingdi.h)

PlgBlt 関数は、ソース デバイス コンテキストの指定された四角形から、コピー先デバイス コンテキストの指定された並列四角形へのカラー データのビットのビット転送を実行します。 指定されたビットマスク ハンドルが有効なモノクロ ビットマップを識別する場合、関数はこのビットマップを使用して、ソース四角形から色データのビットをマスクします。

構文

BOOL PlgBlt(
  [in] HDC         hdcDest,
  [in] const POINT *lpPoint,
  [in] HDC         hdcSrc,
  [in] int         xSrc,
  [in] int         ySrc,
  [in] int         width,
  [in] int         height,
  [in] HBITMAP     hbmMask,
  [in] int         xMask,
  [in] int         yMask
);

パラメーター

[in] hdcDest

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

[in] lpPoint

ターゲットの平行四辺形の 3 つの角を示す論理空間内の 3 つの点の配列へのポインター。 ソース四角形の左上隅は、この配列の最初のポイント、この配列の 2 番目のポイントの右上隅、左下隅から 3 番目のポイントにマップされます。 ソースの四角形の右下隅は、平行四辺形の暗黙の 4 番目の点にマップされます。

[in] hdcSrc

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

[in] xSrc

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

[in] ySrc

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

[in] width

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

[in] height

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

[in] hbmMask

ソースの四角形の色をマスクするために使用されるオプションの白黒ビットマップへのハンドル。

[in] xMask

モノクロ ビットマップの左上隅の x 座標 (論理単位)。

[in] yMask

モノクロ ビットマップの左上隅の論理単位での y 座標。

戻り値

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

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

注釈

PlgBlt 関数は、デバイスに依存するビットマップで動作します。

平行四辺形 (D) の 4 番目の頂点は、最初の 3 つの点 (A、B、および C) をベクトルとして処理し、D = B +CA を計算することによって定義されます。

ビットマスクが存在する場合、マスク内の 1 の値は、ソース ピクセルの色をコピー先にコピーする必要があることを示します。 マスクの値が 0 の場合は、ターゲット ピクセルの色を変更しないことを示します。 マスク四角形がソース四角形とコピー先の四角形よりも小さい場合、関数はマスク パターンをレプリケートします。

スケーリング、変換、およびリフレクション変換は、ソース デバイス コンテキストで許可されます。ただし、回転変換とせん断変換は行われません。 マスク ビットマップがモノクロ ビットマップでない場合は、エラーが発生します。 必要に応じて、ターゲット デバイス コンテキストのストレッチ モードを使用して、ピクセルを拡大または圧縮する方法を決定します。

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

コピー先の座標は、コピー先デバイス コンテキストに従って変換されます。コピー元の座標は、コピー元デバイス コンテキストに従って変換されます。 ソース変換に回転またはせん断がある場合は、エラーが返されます。

変換先とソースの四角形の色形式が同じでない場合、 PlgBlt は変換元の四角形を変換先の四角形と一致させます。

すべてのデバイスが PlgBlt 関数をサポートしているわけではありません。 詳細については、 GetDeviceCaps 関数のRC_BITBLT ラスター機能の説明を参照してください。

ソースと宛先のデバイス コンテキストが互換性のないデバイスを表している場合、 PlgBlt はエラーを返します。

複数のモニター システムで使用する場合、 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

ビットマップ関数

ビットマップの概要

GetDIBits

GetDeviceCaps

MaskBlt

SetDIBits

SetStretchBltMode

Stretchblt

StretchDIBits